[英]Using python to merge multiple columns with non-NaN values
我有 3 个具有相同格式和列的数据框,每个数据框都有一个列标准 1 。 每个数据框都填充了不同的人,我想将此列的非 NaN 值组合在 3 个数据框中,然后将其存储在一个 excel 文件中,以便 NaN 在 excel 中为空值。 我怎样才能在 Python 中做到这一点? 另外,我想知道是否有任何一行至少由两个人填满?
数据帧 1
ID Criterion 1
1021 10
1022 NaN
1023 NaN
1024 NaN
1025 NaN
数据帧 2
ID Criterion 1
1021 NaN
1022 15
1023 NaN
1024 NaN
1025 NaN
数据帧 3
ID Criterion 1
1021 NaN
1022 NaN
1023 NaN
1024 NaN
1025 34
联合数据帧
ID Criterion 1
1021 10
1022 15
1023 NaN
1024 NaN
1025 34
Excel 文件数据框 1
ID Criterion 1
1021 10
1022 15
1023
1024
1025 34
想法是引发错误,如果自定义函数中Criterion 1
列的相同 ID 有 2 个或更多值:
def func(dfs):
dfs = [x.set_index('ID') for x in dfs]
df = pd.concat([x['Criterion 1'] for x in dfs], 1)
m = df.count(axis=1).gt(1)
L = m.index[m].astype(str)
if m.any():
raise ValueError(f'For ID(s) {", ".join(L)} are multiple values')
return df.groupby(axis=1, level=0).first()
df = func([df1, df2, df3])
print (df)
Criterion 1
ID
1021 10.0
1022 15.0
1023 NaN
1024 NaN
1025 34.0
最后,将此数据框写入 Excel 文件格式:
df.to_excel(file)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.