首页 > 解决方案 > 将数据框中的行设置为列属性或元数据

问题描述

我有一个包含调查数据的数据框,其中每一列都标记为 Q1-Q100。数据框中的第一行包含调查中的实际问题(每列一个问题)。我想将该行设置为每列的属性或元数据,以便以后可以引用它。

数据框如下所示:

Q1  Q2  Q3      Q4
ID  Age Gender  Handedness
1   19  Female  Right
2   19  Male    Right
3   25  Female  Right
4   17  Female  Left

但是对于 Q10-100,标签是一个完整的句子/问题,而不是像“年龄”这样的短标签。

我知道我可以使用以下方法单独设置属性:

df.attrs['Q1'] = 'This is an example question'

但是我想看看是否有一种方法可以将整行设置为每个关联列的属性,而不必遍历每一列并一次设置一个。

标签: pythonpandasdataframe

解决方案


为什么不能简单地使用循环?

如果您将问题存储为列表,则可以执行以下操作:

for column, question in zip(df.columns, questions):
    df.attrs[column] = question

PS:如果您需要将问题存储在df的第一行作为列表,只需执行以下操作:

questions = df.iloc[0].tolist()
df = df.drop(df.index[0], axis=0)

推荐阅读