【发布时间】:2017-03-21 02:25:57
【问题描述】:
我是一名生物学家,对 Python(我使用 v3.5)和 pandas 非常陌生。我有一个 pandas 数据帧(df),我需要从中创建几个数据帧(df1...dfn),这些数据帧可以放在字典(dictA)中,该字典当前具有正确数量(n)的空数据帧。我还有一个字典(dictB),其中包含从 df 提取的 n(单个)列名列表。 2 个字典中的键匹配。我正在尝试根据 dictB 中列表中的列名将 dictA 中的空 dfs 与 df 的一部分附加。
import pandas as pd
listA=['A', 'B', 'C',...]
dictA={i:pd.DataFrame() for i in listA}
假设我有这样的事情:
dictA={'A': df1, 'B': df2}
dictB={'A': ['A1', A2', 'A3'],
'B': ['B1', B2']}
df=pd.DataFrame({'A1': [0,2,4,5],
'A2': [2,5,6,7],
'A3': [5,6,7,8],
'B1': [2,5,6,7],
'B2': [1,3,5,6]})
listA=['A', 'B']
我想要得到的是让 df1 和 df2 像这样附加 df 的部分,因此 df1 的输出是这样的:
A1 A2 A3
0 0 2 5
1 2 4 6
2 4 6 7
3 5 7 8
df2 将包含 B1 和 B2 列。
我尝试了以下循环和一些更改,但它没有产生填充的 dfs:
for key, values in dictA.items():
values.append(df[dictB[key]])
感谢和抱歉,如果这已经在其他地方解决但我找不到它。
【问题讨论】:
标签: pandas for-loop dictionary dataframe