我想做一些(我认为)应该非常简单的事情。
我有一个 DataFrame df
和一个字符串 tags
数组:
>> print(df)
Field1 Field2
0 AA 10
1 BB 20
2 CC 30
3 DD 40
>> print(tags)
['tag1', 'tag2', 'tag3']
我想在 df
中添加一个包含字符串 tags
数组的新列“Tags”。
>> print(df_out)
Field1 Field2 Tags
0 AA 10 ['tag1', 'tag2', 'tag3']
1 BB 20 ['tag1', 'tag2', 'tag3']
2 CC 30 ['tag1', 'tag2', 'tag3']
3 DD 40 ['tag1', 'tag2', 'tag3']
注意:在此示例中,每一行都使用相同的数组。在我的实际用例中,它将是具有不同长度的不同数组。
但我尝试的大部分操作都以错误消息结束:
ValueError: Length of values does not match length of index
最佳答案
使用列表理解:
tags = ['tag1', 'tag2', 'tag3']
df['Tags'] = [tags for x in df.index]
print (df)
Field1 Field2 Tags
0 AA 10 [tag1, tag2, tag3]
1 BB 20 [tag1, tag2, tag3]
2 CC 30 [tag1, tag2, tag3]
3 DD 40 [tag1, tag2, tag3]
In this example the same array is used for each row. In my real use case it will be differents arrays with different lengths.
有必要创建具有与 DataFrame 长度相同长度的所有值的嵌套列表:
tags = [['tag1', 'tag2', 'tag3'], ['tag2', 'tag3'], ['tag3'], ['tag3']]
df['Tags'] = tags
print (df)
Field1 Field2 Tags
0 AA 10 [tag1, tag2, tag3]
1 BB 20 [tag2, tag3]
2 CC 30 [tag3]
3 DD 40 [tag3]
关于python - Pandas : Add a column of arrays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54902138/