我是python和pandas的新手,但这是我想要做的。 我想通读目录中的所有csv文件,并从文件中检索一个数据单元并更新字典中的计数,而检索值是字典中的键。我必须为〜6000个csv文件执行此操作。我该如何快速做到这一点?
stats = {'A':0, 'B':0, 'C':0, 'D':0}
for file in f:
df = pandas.read_csv(file)
type = df["type"].head(1)[0]
stats[type]+=1
我读取文件的顺序无关紧要。我希望能同时执行此操作,共享字典。除非有更好的方法来实现目标。
答案 0 :(得分:1)
您可以通过以下方式显着优化逻辑:
collections.Counter
。以下一些代码应该会有所帮助:
from collections import Counter
import pandas as pd
res = Counter(pd.read_csv(file, nrows=1, columns=['type'])['type'].iloc[0] \
for file in f)
Counter
的优点在于,无需预先指定键。另请注意,Counter
是dict
的子类,因此您不会放弃任何功能。