Python 具有多个列的数组
我使用Python 具有多个列的数组,python,pandas,Python,Pandas,我使用pandas.concat将多个Dataframe连接在一起,并希望将一列中的NaN值填充为其他几列的值 为了得到下表,我做了:z=pandas.concat([df1,df2,df3],axis=0,join='outer') 连接表 C_header1 C_header2 C_header3 Column1 Column2 Column3 0 Item1 NaN NaN Values Value
pandas.concat
将多个Dataframe
连接在一起,并希望将一列中的NaN
值填充为其他几列的值
为了得到下表,我做了:z=pandas.concat([df1,df2,df3],axis=0,join='outer')
连接表
C_header1 C_header2 C_header3 Column1 Column2 Column3
0 Item1 NaN NaN Values Values Values
1 Item2 NaN NaN Values Values Values
2 Item3 NaN NaN Values Values Values
3 Item4 NaN NaN Values Values Values
4 Item5 NaN NaN Values Values Values
5 NaN Item6 NaN Values Values Values
6 NaN Item7 NaN Values Values Values
7 NaN Item8 NaN Values Values Values
8 NaN NaN Item9 Values Values Values
9 NaN NaN Item10 Values Values Values
目前,我正在运行下面的代码,将C_header1、C_header2、C_header3
放在一起
z['C_header1'].fillna(z['C_header2'], inplace=True)
z['C_header1'].fillna(z['C_header3'], inplace=True)
z.drop(['C_header2', 'C_header3'], inplace=True)
获得
C_header1 Column1 Column2 Column3
0 Item1 Values Values Values
1 Item2 Values Values Values
2 Item3 Values Values Values
3 Item4 Values Values Values
4 Item5 Values Values Values
5 Item6 Values Values Values
6 Item7 Values Values Values
7 Item8 Values Values Values
8 Item9 Values Values Values
9 Item10 Values Values Values
有没有更像蟒蛇的方法?感觉我遗漏了什么如果您确保您的df1
、df2
和df3
具有相同的列,则会按需要进行连接
在这种情况下,您可以执行以下操作:
df2.columns = df1.columns
df3.columns = df1.columns
# at this point concat will give you the desired result
pandas.concat(rename_columns(df1, df2, df3))
注意一般来说,您最好使用重命名列。看起来您获得了所需的输出,并且使用了pandas本机函数来完成任务。我不清楚你在问什么。是的,我得到了想要的结果。但是我似乎不能用多个C_头填充na
。例如:fillna([z['C_headers2'],z['C_headers3'],inplace=True)
是错误的。我可以运行一个线性代码来实现这一点吗?您可以链接第一部分:df['C_header1'].fillna(df['C_header2'].fillna(df['C_header3'])