我的熊猫数据框具有以下字段:
我要创建新字段:
大熊猫中是否有一个代码可以执行一次,而不必为每个新字段重复执行此操作?
答案 0 :(得分:1)
您可以按DataFrame.iloc
和索引按位置选择列-例如1:-1
用于获取所有没有第一列和最后一列的列,除以DataFrame.div
,DataFrame.add_prefix
和DataFrame.join
到原始列:
df = pd.DataFrame({
'A':list('abcdef'),
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'D':[4,3,2,2,4,5],
'Z':[5,3,6,9,2,4],
})
df = df.join(df.iloc[:, 1:-1].div(df['Z'], axis=0).add_suffix('/Z'))
或通过DataFrame.drop
删除列:
df = df.join(df.drop(['A','Z'], axis=1).div(df['Z'], axis=0).add_suffix('/Z'))
print (df)
A B C D Z B/Z C/Z D/Z
0 a 4 7 4 5 0.800000 1.400000 0.800000
1 b 5 8 3 3 1.666667 2.666667 1.000000
2 c 4 9 2 6 0.666667 1.500000 0.333333
3 d 5 4 2 9 0.555556 0.444444 0.222222
4 e 5 2 4 2 2.500000 1.000000 2.000000
5 f 4 3 5 4 1.000000 0.750000 1.250000