【问题标题】:How to merge identic columns in the same df? [duplicate]如何合并同一df中的相同列? [复制]
【发布时间】:2022-09-30 20:40:02
【问题描述】:
我有两个要连接的数据框,然后我更改了第二个的名称以匹配第一个,我想知道 Python 是否有可能合并两个重复的列? (想法是,如果另一列中的值非空,则替换所有相同列的 Nans。)
精度:我知道我可以更改列的名称然后连接,但这会导致我无法解决的索引错误
例子:
Info_r1_c1 Info_r1_c1
nan nan
nan 198
300 nan
nan nan
600 nan
nan 460
6.9 nan
我想要这个结果,一个剩余的列,所有相同列的替换值
Info_r1_c1
nan
198
300
nan
600
460
6.9
感谢您的帮助,因为我真的被这些重复的东西所困扰
标签:
python
pandas
dataframe
【解决方案1】:
可能,一个简单的 apply-lambda 应该可以完成这项工作......试试这个......
df = pd.DataFrame({"Info_r1_c1":[np.nan,20,30,np.nan],
"Info_r1_c2":[10,np.nan,np.nan,40]})
df.columns = ["Info_r1_c1","Info_r1_c1"]
dup_col_name = "Info_r1_c1" # Edit this variable which is duplicated in df
df["Info_r1_c1_Final"] = df[dup_col_name].apply(lambda x: list(x)[0] if pd.isna(list(x)[1]) else list(x)[1],axis=1)
# Output of df
Info_r1_c1 Info_r1_c1 Info_r1_c1_Final
0 NaN 10.0 10.0
1 20.0 NaN 20.0
2 30.0 NaN 30.0
3 NaN 40.0 40.0
希望这可以帮助...