尝试使用熊猫交叉标签功能运行此简单的for循环。迭代目标是交叉表函数中的参数。应该通读一列列表,并为每个列组合生成一个交叉表。但相反,它会将我的“ i”可迭代方法解释为该列的文字标题,而不是该迭代中应包含的任何变量。
我得到一个错误:'DataFrame'对象没有属性'i',因为它正在读取'i'作为属性的文字名称,而不是应该从循环中存储在i中的值。
import pandas
DF = pandas.read_excel('example.xlsx')
Categories = list(DF.columns.values)
for i in Categories:
pandas.crosstab(DF.Q, DF.i, normalize = 'index', margins=True)
答案 0 :(得分:2)
IIUC,您想遍历每一列并针对列Q
创建交叉表,但是您当前的循环不会产生任何结果。
使用以下内容将结果分配给python dict
,您可以使用列名作为键来访问它:
DF = pandas.read_excel('example.xlsx')
Categories = list(DF.columns.values)
cross_tabs = {}
for i in Categories:
cross_tabs[i] = pandas.crosstab(DF.Q, DF[i], normalize = 'index', margins=True)