pandas - 如何将一系列元组转换为 DataFrame?
问题描述
我正在尝试在数据框中的其他列中添加一些额外的数据。
考虑这个示例代码:
import pandas
import numpy
def more_data(d):
return 1, 2
df = pandas.DataFrame({"A":[1, 2, 3], "B":[17, 16, 15]})
x = df.apply(more_data, axis=1)
df1 = pandas.DataFrame(x)
df2 = pandas.concat([df, df1], axis=1)
print(df2)
输出是:
A B 0
0 1 17 (1, 2)
1 2 16 (1, 2)
2 3 15 (1, 2)
毫不奇怪,因为 apply() 返回一个元组序列,它被忠实地作为一列元组添加到数据帧中。但是,我想要的是另外两列,其中包含在元组中返回的值。那将如何运作?
解决方案
您对自己的解决方案非常接近,如果您将数据框转换为列表,然后将其构造为再次定义列的数据框,它可以工作:
def more_data(d):
return 1, 2
df = pd.DataFrame({"A":[1, 2, 3], "B":[17, 16, 15]})
x = df.apply(more_data, axis=1)
df1 = pd.DataFrame(x.tolist(), columns=['Col1', 'Col2']) # <-- line which is different
df2 = pd.concat([df, df1], axis=1)
A B Col1 Col2
0 1 17 1 2
1 2 16 1 2
2 3 15 1 2
推荐阅读
- flutter - 我有一个关于在 initstate 中有条件地导航到下一页的问题
- amazon-web-services - CloudFormation 模板中的 Aws Glue Crawler 重新抓取策略
- python - 尝试使用 Matplotlib 在 Python 中绘制动画
- javascript - 如何在 intl-tel-input 中获取 iti__dial-code?
- c# - 无法从 Microsoft 网络聊天机器人框架在浏览器的新选项卡中导航 pdf
- sql - 我不能在 PostgreSQL 中使用十进制转换
- html - Angular:使用引导类“text-white”的 ngClass 无法更改颜色
- python - 如何在python中添加一个按钮
- python - 无法刮取“span”字符串元素beautifulsoup4
- javascript - 包含对象的数组中的浅拷贝与深拷贝