pandas 中所有列的频率 table
frequency table for all columns in pandas
我想 运行 频率 table 我的 df 中的每个变量。
def frequency_table(x):
return pd.crosstab(index=x, columns="count")
for column in df:
return frequency_table(column)
我得到了 'ValueError: If using all scalar values, you must pass an index'
的错误
我该如何解决这个问题?
谢谢!
您没有传递任何数据。您只是传递了一个列名。
for column in df:
print(column) # will print column names as strings
尝试
ctabs = {}
for column in df:
ctabs[column]=frequency_table(df[column])
然后您可以使用列名作为 ctabs
字典中的键来查看每个交叉表
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
我想 运行 频率 table 我的 df 中的每个变量。
def frequency_table(x):
return pd.crosstab(index=x, columns="count")
for column in df:
return frequency_table(column)
我得到了 'ValueError: If using all scalar values, you must pass an index'
的错误我该如何解决这个问题?
谢谢!
您没有传递任何数据。您只是传递了一个列名。
for column in df:
print(column) # will print column names as strings
尝试
ctabs = {}
for column in df:
ctabs[column]=frequency_table(df[column])
然后您可以使用列名作为 ctabs
字典中的键来查看每个交叉表
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