pandas 根据行计算创建新的 Dataframe 字段

mnemlml8  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(121)

我想根据每行值的计算结果创建一些新列
例如,输入

data = {"c1": [10], "c2": [20], "c3":[30], "c4":[40], "c5":[50], "c6":[10]}
df = pd.DataFrame(data=data)

假设我们从级数= c2:c6,[20 30 40 50 10]中取值

new_column1= np.mean(series[0:2]). # np.mean([20,30]) = 25
new_column2 = np.mean(series[2:4]) # np.mean(40,50) = 45
new_column3 = new_column1+new_column2 # 70

输出:

c1  c2  c3  c4  c5  c6 new_column1 new_column_2 new_column_3
0  10  20  30  40  50  10. 25.  45 70

我正在寻找一种有效的方法(列表解析或应用函数?)而不是迭代

wvyml7n5

wvyml7n51#

看起来您想要:

df['new_column1'] = df.loc[:, 'c2':'c3'].mean(axis=1)
df['new_column2'] = df.loc[:, 'c4':'c5'].mean(axis=1)
df['new_column3'] = df[['new_column1', 'new_column2']].sum(axis=1)

print(df)

输出:

c1  c2  c3  c4  c5  c6  new_column1  new_column2  new_column3
0  10  20  30  40  50  10         25.0         45.0         70.0

相关问题