python - 熊猫取消列出链中的一个数据框列
问题描述
我想将一个 Pandas 数据框列取消列出为链中的多个列。像这样,但理想情况下是在一个链中以提高可读性,因为之后有更多的步骤。这是我的示例,它不起作用。
d1 = {
'teams': [['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG']],
'bal':[5,7,8]
}
df2 = pd.DataFrame(d1)
#unlist teams column in chain
res=(df2
.pd.DataFrame(df2['teams'].to_list(), columns=['team1','team2'])
.assign(bal2=lambda x: x['bal']*2)
)
#final result like this
d3 = {
'team1': ['SF','SF','SF'],
'team2': ['NYG','NYG','NYG'],
'bal':[5,7,8],
'bal2':[10,14,16]
}
df4 = pd.DataFrame(d3)
解决方案
如果DataFrame.pop
用于提取列并转换为DataFrame
then 可以添加DataFrame.join
以附加所有其他列:
res= (pd.DataFrame(df2.pop('teams').to_list(), columns=['team1','team2'], index=df2.index)
.join(df2)
.assign(bal2 = lambda x: x['bal']*2))
print (res)
team1 team2 bal bal2
0 SF NYG 5 10
1 SF NYG 7 14
2 SF NYG 8 16
推荐阅读
- jquery - 如何清理地图上的 Mapbox-gl 数据
- sql - 如何修复 PL/SQL:ORA-00918:Oracle 中定义不明确的列
- typescript - 在打字稿中从界面创建对象
- kotlin - 运算符重载 Kotlin
- opengl - 使用 OpenGL 执行 YUV 颜色格式的视频合成 - 性能
- c# - WPF Datagrid中的单个单元格背景颜色不是所有的行颜色
- python - 如何从列中选择大写单词并分成新列?
- python - 从其他系列对象修改系列
- sparql - 为什么这个 SPARQL 查询会给出错误的结果?
- python - array_a = array_b[:] 但改变 a 也改变 b (numpy)