[英]pandas fillna with multiple columns
我使用pandas.concat
將多個Dataframe
連接在一起,並希望用其他幾列的value
填充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
有沒有更Python的方式來做到這一點? 感覺就像我錯過了什么
如果確保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.DataFrame.rename重命名列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.