pandas 如何合并同一DataFrame中两列的大量数据?

ct3nt3jp  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(170)

here is a pic of df1 = fatalities
因此,为了创建一个显示受伤人数最多的年份的图表(我有一个关于2000-2020年希腊飞机失事事件的任务),我需要创建一个包含轻伤和重伤的列。
我有一个包含更多数据的第一个df,但是我试图只捕获我需要的列w,所以我们有死亡df 1,它包含年份,fatal_injuries,minor_injuries,serious_injuries和每年的事故总数(all_incident)。我想做的是,将minor和serious injuries合并到一个名为total_injuries或只是injuries的列中。

import pandas as pd
​    pd.set_option('display.max_rows', None)
    df = pd.read_csv('all_incidents_cleaned.csv')
    df.head()
    df\['Year'\] = pd.to_datetime(df.incident_date).dt.year
    fatalities = df.groupby('Year').fatalities.value_counts().unstack().reset_index()fatalities\ 
    ['all_incidents'\] = fatalities\[\['Θανάσιμος τραυματισμός', 
    'Μικρός     τραυματισμός','Σοβαρός τραυματισμός', 'Χωρίς Τραυματισμό'\]\].sum(axis=1)
    df\['percentage_deaths_to_all_incidents'\] = round((fatalities\['Θανάσιμος          
    τραυματισμός'\]/fatalities\['all_incidents'\])\*100,1)
    df1 = fatalities
    fatalities_pd = pd.DataFrame(fatalities)
    df1
    fatalities_pd.rename(columns = {'Θανάσιμος τραυματισμός':'fatal_injuries','Μικρός τραυματισμός':       

    'minor_injuries', 'Σοβαρός τραυματισμός' :'serious_injuries', 'Χωρίς Τραυματισμό' :    
    'no_injuries'}, inplace = True)
    df1
toiithl6

toiithl61#

对于当前数据集,需要两个步骤。
首先,我将“NaN”值替换为0。这可以通过以下方式完成:

df1.fillna(0)

然后,您可以创建一个新列“total_injuries”,其中包含轻伤和重伤的总和:

df1["total_injuries"]=df1["minor_injuries"]+df1["serious_injuries"]

在处理数据之前先检查数据的一致性总是很好的。有用的命令如下:

data.shape
data.info()
data.isna().values.any()
data.duplicated().values.any()
duplicated_rows = data[data.duplicated()]
len(duplicated_rows)
data.describe()

相关问题