2021-08-26 Python + Excel 数据处理 随笔03 - Pandas Dataframe 数据处理

1. 指定某列数据类型


df['列名'].astype(int)

2.  获取第n行某列的值


val = df.loc[df.index[0], '列名']

3. 按筛选条件合计


# 筛选条件:列1=abc ,合计 列2 的值

df.loc[ df['列1']=='abc','列2'].sum()

# 筛选条件:列1=abc 且 列2 = 123 ,合计 列3 的值

df.loc[ (df['列1']=='abc') & (df['列2']=='123'),'列3'].sum()

# 筛选条件:列1=abc 且 列2 包含市 ,合计 列3 的值

df.loc[ (df['列1']=='abc') & (df['列2'].str.contains('市'))'列3'].sum() 


4. dataframe 追加、合并


# 在 df_01 后面追加 df_02 的数据,前提是两个 df 结构完全一致

df_01 = df_01.append(df_02)

# 合并 df_01 和 df_02,以 列1,列2,列3 为标识

df_01 = df_01.merge(df_02, on=['列1','列2','列3'])

# 合并 df_01 和 df_02,结构完全一样

df_03 = pd.concat([df_01, df_02], axis=0)

merge 如果有标识以外重名的列会出错,需要设置合并后各自名称 suffixes=('_left','_right')

5. dataframe 拷贝复制


df_copy = df.copy()[['列1','列2','列3']]

6. dataframe 间计算


df_miles[col] = df_income[col] * 10000 / df_quality[col]

7. dataframe 行内计算


df_income['年累计'] = df_income.apply(lambda x: x[list(df_income.filter(regex='月'))].sum(),axis=1)

8. dataframe 列改名


    df(columns={‘新列名1’:'旧列名1',‘新列名2’:'旧列名2'},inplace=True)

9. dataframe 去重


df = df.drop_duplicates(['列1','列2'],keep='first', inplace=True)

10. 字典列表转 dataframe


dict_person= {}

dict_person['name'] = ''

dict_person['age'] = 20

list_person = []

list_person.append(dict_person)

 df_person = pd.DataFrame(list_person)

11. 获取含有“月”字的列名集合


cols = list(df.filter(regex='月'))

12. 删除含有“月”字的列


df = df[df.columns.drop(list(df.filter(regex='月')))]

13. 按行遍历 dataframe 


 for index, row in df.iterrows():

        print(row['列1'])

14. dataframe 排序


df = df.sort_values(by=['列1','列2'],axis=0,ascending=[False,True])

15.  筛选条件为几个字符串之一


df = df.loc[(df['国家']==('中国'))&(df['城市'].isin(['北京','上海','广州','深圳']))]

16. dataframe 年月日字符串列转 datatime 类型


df['日期'] = pd.to_datetime(df['日期'],format=('%Y{y}%m{m}%d{d}').format(y='年',m='月',d='日'))

17. 筛选条件为起止时间段之间


total = df.loc[ (df['日期'].between(start,end))  ,'金额'].sum()

起止时间和列数据类型须统一为 datetime 或 timestamp

18. dataframe 排名取前30名


df = df.sort_values(by="收入",ascending=False).head(30)

你可能感兴趣的:(2021-08-26 Python + Excel 数据处理 随笔03 - Pandas Dataframe 数据处理)