Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有多个列的数组_Python_Pandas - Fatal编程技术网

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'])