[英]Extracting column from dictionary of dataframes
我有一个字典d
,其中的键与 pandas dataframe 相关联。 所以,我可以执行print(d[0]['col1']
并且我可以为 key 0
返回col1
。
如果我打印d
,我对键0
有类似的东西 -
{0: col1 type Weather \
0 id varchar
1 id varchar
2 id varchar
3 id varchar
4 id varchar
.. ... ... ...
预期结果变为
{0: col1
0 id
1 id
2 id
3 id
4 id
.. ...
但是我怎样才能把它应用到所有的键上呢? 所以我的字典只包括col1
。 我已经坚持了一段时间,任何指导表示赞赏。
我会这样做:
import pandas as pd
d = {0:pd.DataFrame({'col0':[0,1,2], 'col1':[0,0,0]}),
1:pd.DataFrame({'col0':[1,2,3], 'col1':[1,1,1]})}
def get_cols(d,cols):
for key, value in d.items():
d[key] = value[cols]
return d
这将为您提供所选列的系列
print(get_cols(d,'col0'))
这将为您提供所选列的 df
print(get_cols(d,['col0']))
这将为您提供所选列的 df
print(get_cols(d,['col0','col1']))
注意:此策略修改d
,因为它是通过引用传递的。 您也可以在 function 中修改之前返回None
并只使用 d 或深拷贝d
。
您是否尝试过使用字典理解?
import pandas as pd
df0 = pd.DataFrame({'col1': [1,2,3], 'col2': [3,4,5], 'col3': [5,6,7]})
df1 = pd.DataFrame({'col1': [7,8,9], 'col2': [10,11,12], 'col3': [13,14,15]})
d = {}
d[0] = df0
d[1] = df1
print({x:d[x]['col1'] for x in d})
如果您想要没有索引的 output 可以将最后一行替换为
print({x:d[x]['col1'].values for x in d})
或者
print({x:d[x]['col1'].tolist() for x in d})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.