Pandas学习之路【3】有哪些进阶技巧和难点?

摘要:新增列的一些操作 1.新增一个列,直接给列赋值 # 取所有行,新增的列为new_col df.loc[:, 'new_col'] = 100 2.使用df.apply方法给新增的列赋值 def
新增列的一些操作 1.新增一个列,直接给列赋值 # 取所有行,新增的列为new_col df.loc[:, 'new_col'] = 100    2.使用df.apply方法给新增的列赋值 def get_wendu_type(x): if x['bWendu']>33: return '高温' if x['bWendu']<-10: return '低温' return '常温' # apply通过调用get_wendu_type函数,会得到一个series, 然后把这个series赋值给新增的列new_col_wendu_type # 如果axis=0的话,就是赋值给行 df.loc[:, 'new_col_wendu_type'] = df.apply(get_wendu_type, axis=1) # 计数统计 df['new_col_wendu_type'].value_counts()    3.使用df.assign方法新增列,并赋值 # yWendu_huashidu,bWendu_huashidu为新增的列名 # 通过函数给列赋值 # 例如:将温度转化为华氏度 df.assign( yWendu_huashidu = lambda x: x['yWendu'] * 9 / 5 + 32, bWendu_huashidu = lambda x: x['yWendu'] * 9 / 5 + 32 )    4.先按条件筛选出数据,然后对于这些数据在新列上赋值 # 先创建一个空的列温度类型:wendu_type df['wendu_type'] = '' # 如果最高温度 - 最低温度 大于10 则将wendu_type列赋值为 温差大, 反之为 温差小 df.loc[df['bWendu'] - df['yWendu'] > 10, 'wendu_type'] = '温差大' df.loc[df['bWendu'] - df['yWendu'] <= 10, 'wendu_type'] = '温差小' # 计数统计 df['wendu_type'].value_counts()