我需要访问与列值的几种组合相关联的DataFrame中的行数。
这是我正在做的要点:
for col1, col2, col3 in column_values:
n = df.loc[(df.col1 == col1) & (df.col2 == col2) & (df.col3 == col3)].shape[0]
print n
当column_values
是一长串列表时,我发现这非常慢。无论我使用df.loc[]
,df[]
还是df.ix[]
,速度都是相同的。
是否有更快的方法来访问行计数?
答案 0 :(得分:0)
假设column_values是一个元组列表,我建议只计数一次:
grouped = df.groupby([col1, col2, col3]).count()
grouped.reindex(columns_values, fill_value=0)