在熊猫中循环访问一行中的列



我有一个带有以下标头的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]])

最新更新