可以通过以下步骤实现:
import pandas as pd
data = {'A': [1, 2, 3, 4, 5],
'B': [6, 7, 8, 9, 10],
'C': [11, 12, 13, 14, 15]}
df = pd.DataFrame(data)
apply
函数和lambda
表达式将多列转换为两个新列:df[['New1', 'New2']] = df.apply(lambda row: pd.Series([row['A'] + row['B'], row['B'] - row['C']]), axis=1)
这里,apply
函数将每一行的'A'、'B'、'C'列的值作为输入,通过lambda
表达式计算得到新的两列值,并使用pd.Series
将其转换为Series对象,最后通过df[['New1', 'New2']]
将新列添加到数据帧中。
print(df)
输出结果:
A B C New1 New2
0 1 6 11 7 -5
1 2 7 12 9 -5
2 3 8 13 11 -5
3 4 9 14 13 -5
4 5 10 15 15 -5
这样,我们成功地将数据帧中的多列转换为了两个新列。其中,'New1'列的值为'A'列和'B'列的和,'New2'列的值为'B'列和'C'列的差。这个方法可以用于对数据进行各种复杂的转换和计算,非常灵活。
推荐的腾讯云相关产品:腾讯云数据库TencentDB、腾讯云云服务器CVM、腾讯云对象存储COS。
DB TALK 技术分享会
DBTalk
云+社区技术沙龙[第9期]
DB・洞见
云+社区技术沙龙[第16期]
云+社区开发者大会 武汉站
T-Day
Elastic 中国开发者大会
领取专属 10元无门槛券
手把手带您无忧上云