我想在我的df中的每个变量上运行频率表。
def frequency_table(x):
return pd.crosstab(index=x, columns="count")
for column in df:
return frequency_table(column)
我收到错误'ValueError:如果使用所有标量值,则必须传递索引'
我该如何解决这个问题?
谢谢!
答案 0 :(得分:3)
您没有传递任何数据。您只是传递一个列名。
for column in df:
print(column) # will print column names as strings
尝试
ctabs = {}
for column in df:
ctabs[column]=frequency_table(df[column])
然后您可以使用列名作为ctabs
词典中的键
答案 1 :(得分:0)
for column in df:
print(data[column].value_counts())
例如:
import pandas as pd
my_series = pd.DataFrame(pd.Series([1,2,2,3,3,3, "fred", 1.8, 1.8]))
my_series[0].value_counts()
将生成如下所示的输出:
3 3
1.8 2
2 2
fred 1
1 1
Name: 0, dtype: int64