我想知道是否有人可以提供帮助。我在字典中存储了许多数据框。我只想访问这些数据帧中的每一个,并在我有10个字母的列中的一列中计算值。在第一个数据帧中有5bs和5 as。例如,我希望计数的输出是a = 5和b = 5。但是对于每个数据帧,此计数将有所不同,因此我想将这些计数的输出存储到另一个字典或单独的变量中。
字典称为Dict,所有数据框中的列名称称为字母。我试图通过访问字典中的键来做到这一点,但无法使其正常工作。下面显示了我尝试过的部分。
import pandas as pd
for key in Dict:
Count=pd.value_counts(key['letters'])
理想情况下,此计数将随每个新计数输出变化以存储到新变量中
词典中14个数据帧之一的简化示例(实际数据帧大小最大为5000,63)为
`d = {'col1':[1,2,3,4,5,6,7,8,9,10],'字母':['a','a','a', 'b','b','a','b','a','b','b']}
df = pd.DataFrame(data = d)`
其他数据框为名称df2,df3,df4等
我希望这是有道理的。任何帮助将不胜感激。
谢谢
答案 0 :(得分:1)
如果在遍历字典时要同时访问键和值,则应使用items函数。 您可以使用其他字典来存储结果:
letter_counts = {}
for key, value in Dict.items():
letter_counts[key] = value["letters"].value_counts()
您还可以使用字典理解来在1行中执行此操作:
letter_counts = {key: value["letters"].value_counts() for key, value in Dict.items()}
答案 1 :(得分:1)
最简单的事情可能是字典理解:
d = {'col1': [1, 2,3,4,5,6,7,8,9,10], 'letters': ['a','a','a','b','b','a','b','a','b','b']}
d2 = {'col1': [1, 2,3,4,5,6,7,8,9,10,11], 'letters': ['a','a','a','b','b','a','b','a','b','b','a']}
df = pd.DataFrame(data=d)
df2 = pd.DataFrame(d2)
df_dict = {'d': df, 'd2': df2}
new_dict = {k: v['letters'].count() for k,v in df_dict.items()}
# out
{'d': 10, 'd2': 11}