[英]Merge two pandas dataframes, as lists in every cell
我想合并 2 个数据框,生成的数据框在每个单元格中都有一个列表。 我完全不知道如何做到这一点。
我当前的解决方案是使用每个数据帧的索引来构建一个字典(例如dict[index[0]]['DEPTH'] = []
),然后循环遍历数据帧的行以附加到字典键(例如。 dict[index[0]]['DEPTH'].append(cell_value)
),但我认为这是超级低效和缓慢的。
是否存在可以完成此任务的 pandas 解决方案?
DEPTH A
chr1~10007022~C [1, 1] [0, 0]
chr1~10007023~T [1, 1] [0, 0]
.
.
.
chr1~10076693~T [1, 1] [0, 0]
记住:
您可以将两者连接起来,按项目分组,然后用列表聚合。
import pandas as pd
df = pd.DataFrame({'item':['chr1-10007022-C', 'chr1-10007023-T'],
'DEPTH':[1,1],
'A':[0,0],
'C':[0,0]})
df = df.set_index('item')
df2 = pd.DataFrame({'item':['chr1-10007022-C', 'chr1-10007026-X'],
'DEPTH':[1,1],
'A':[0,0],
'C':[0,0]})
df2 = df2.set_index('item')
out = pd.concat([df,df2]).groupby(level=0).agg(list)
输出
DEPTH A C
item
chr1-10007022-C [1, 1] [0, 0] [0, 0]
chr1-10007023-T [1] [0] [0]
chr1-10007026-X [1] [0] [0]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.