我有一个字典 d
,其中的键与 Pandas 数据框相关联。因此,我可以执行 print(d[0]['col1']
并且我可以为键 col1
返回 0
。
如果我打印 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
。我已经坚持了一段时间,任何指导表示赞赏。
答案 0 :(得分:2)
我会这样做:
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
,因为它是通过引用传递的。您也可以返回 None
并在函数中修改它之前使用 d 或深拷贝 d
。
答案 1 :(得分:2)
您是否尝试过使用字典理解?
forecast.table <- tibble()
如果你想要没有索引的输出,你可以用任何一个替换最后一行
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})
或
print({x:d[x]['col1'].values for x in d})