在pandas中的行中迭代列

2024-10-03 23:23:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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

question_no,question,A,B,C,D

其中A、B、C、D是问题的选项。一个问题的选项数量可能因文件而异(例如4-a、B、C、D6-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'

我怎样才能做到这一点


Tags: 文件csvnoinfordata选项col
1条回答
网友
1楼 · 发布于 2024-10-03 23:23:45

点存取器(df.col_nameserie.index_value)只是命名元素存取器(df['col_name']serie['index_value'])的快捷方式。且仅在2种情况下有效:

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

你想要的只是:

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

相关问题 更多 >