python - Pandas : Add a column of arrays

标签 python pandas

我想做一些(我认为)应该非常简单的事情。

我有一个 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/

相关文章:

python - Pandas Dataframe 按两列分组并总结一列

python - 使用背景颜色样式来抓取 td 元素 BeautifulSoup

python - 在 hdfs 中运行顺序代码

Python 写入 (xlwt) 到现有 Excel 工作表、删除图表和格式

python - 取一个 Pandas Series,其中每个元素都是一个 DataFrame 并将它们组合成一个大 DataFrame

python - 如何将日期时间格式转换为分钟 - pandas

pandas - matplotlib.axis.axes mplfinance 体积误差

python - pygame在窗口未聚焦时捕获键盘事件

python - 如何解决python 'utf-8'错误?

python - 带有行号和列标签的 Pandas Dataframe 2D 选择