pandas如何灵活增加新的空字段
作者:距离&
这篇文章主要介绍了pandas如何灵活增加新的空字段问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
pandas灵活增加新的空字段
先说需求
从mongodb中读取数据的某些字段(如A,B,C,D),如果数据没有某个字段(如‘D’字段),就增加该字段且值为空
解决方法
import pandas as pd import numpy as np a=np.array([[1,2,3],[4,5,6],[7,8,9]]) df1=pd.DataFrame(a,index=['row0','row1','row2'],columns=list('ABC')) df1
df1结果:
创建空的且有指定字段的dataframe
df2 = pd.DataFrame(columns=['A','B','C','D'])
再通过pd.concat方法连接
pd.concat([df2,df1])
最后的结果如下:
Python pandas数据清洗,按条件赋值空字段
Python pandas按条件赋值空字段
找到空值,并查看空值的有关规律
旅游数据中节省字段部分为空,考虑使用目的地的均值赋值给对应的空值;有北京到西安的旅程的节省为空,过程中需要:
1、找到节省字段为空的行列:
import numpy as np import pandas as pd data[data['节省'].isnull()]
2、提取其中的目的地:
data.loc[data['节省'].isnull(),['目的地']]
3、各个目的地及出发地的均值:
round(data.groupby(['目的地','出发地'])['节省'].mean())
使用fillna函数解决问题:
1、建立一个新的DataFrame用以装入更新后数据
2、获得目的地情况
3、赋值目的地均值到目的地空值
4、将处理后数据丢进新的DataFrame
5、将2-4步骤进行循环
datafillna = pd.DataFrame() place = data.目的地.unique() for pla in place: t = data.目的地 == pla print(t) a = data[t].fillna(data[t].mean()) print(a) datafillna = datafillna.append(a) break
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。