繁体   English   中英

遍历 pandas 中的一行中的列

[英]Iterate over columns in a row in pandas

我有一个带有以下标题的 csv 文件

question_no,question,A,B,C,D

其中 A,B,C,D 是问题的选项。 问题的选项数量可能因文件而异(例如 4 - A,B,C,D 6 - A,B,C,D,E,F)。 我正在尝试使用以下代码获取行中选项的值。

data = pd.read_csv(request.FILES['myfile'])
optioncodes = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
col_nos = len(data.columns)
opt_lmt = col_nos - 2

for (idx, row) in data.iterrows():
             print(row.question_no)
             for j in range(opt_lmt):
                print(row.optioncodes[j])

但我得到了错误

'Series' object has no attribute 'optioncodes'

我怎样才能做到这一点?

点访问器( df.col_nameserie.index_value )只是命名元素访问器( df['col_name']serie['index_value'] )的快捷方式。 它仅在 2 个条件下有效:

  • 名称必须是常量 - 而您希望它是变量
  • 名称必须是有效标识符(无空格或特殊字符)

你想要的只是:

         ...
         for j in range(opt_lmt):
            print(row[optioncodes[j]])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM