Pandas 为什么可以';ItError执行数学运算,并返回应为浮点的整数值

Pandas 为什么可以';ItError执行数学运算,并返回应为浮点的整数值,pandas,dataframe,integer,Pandas,Dataframe,Integer,我想循环一个数据帧,然后用复杂计算中的利率填充该帧的一列。显然,在帧中循环的最佳方法是使用iterrows——但是当我使用iterrows时,我只得到整数值: import pandas df = pandas.DataFrame({"A": [1,2,3,4,5]}) df['B']=0 for index, row in df.iterrows(): row['B']=row['A']*10.05 df 返回 A B 0 1 10 1 2 20 2 3 30

我想循环一个数据帧,然后用复杂计算中的利率填充该帧的一列。显然,在帧中循环的最佳方法是使用
iterrows
——但是当我使用
iterrows
时,我只得到整数值:

import pandas
df = pandas.DataFrame({"A": [1,2,3,4,5]})
df['B']=0
for index, row in df.iterrows():
    row['B']=row['A']*10.05
df
返回

   A   B
0  1  10
1  2  20
2  3  30
3  4  40
4  5  50
这是不正确的,因为A中的所有值都乘以10.05

下面的示例给出了正确的结果:

df['B']=df['A']*10.05

   A      B
0  1  10.05
1  2  20.10
2  3  30.15
3  4  40.20
4  5  50.25
如前所述,使用这种方法并不容易,因为计算很复杂


我可以使用
iterrows
生成正确的结果吗

似乎需要使用(,
ix
)分配标量值:

但最好与自定义功能一起使用:

df = pandas.DataFrame({"A": [1,2,3,4,5]})


def f(x):
    x['B'] = x.A * 10.05
    #another code
    return x

df = df.apply(f, axis=1)
print (df)
     A      B
0  1.0  10.05
1  2.0  20.10
2  3.0  30.15
3  4.0  40.20
4  5.0  50.25

谢谢,这个循环有效!我将添加一个跟踪,查看apply函数,看看是否也能解决这个问题。这里是我的跟踪,在这里。谢谢,但我现在要睡觉了。但有一条建议——在你的新问题中添加标签熊猫。祝你好运
df = pandas.DataFrame({"A": [1,2,3,4,5]})


def f(x):
    x['B'] = x.A * 10.05
    #another code
    return x

df = df.apply(f, axis=1)
print (df)
     A      B
0  1.0  10.05
1  2.0  20.10
2  3.0  30.15
3  4.0  40.20
4  5.0  50.25