更新数据帧值

2024-06-17 08:47:13 发布

您现在位置:Python中文网/ 问答频道 /正文

使用这个名为data的数据帧。。。你知道吗

                    winner
 runner_name                         
 Steve                   0
 Joe                     0
 Marsha                  1
 Kent                    0

如果我创建一个占位符为0的新列。。。你知道吗

 data['weighted'] = 0

当我在一个循环中传递一个十进制值来更新它时(经过一系列的计算和其他事情之后)。。。你知道吗

 data.ix[runner_name]['weighted'] = 45.88

…它会自动使数字变圆。因此,框架变成。。你知道吗

                    winner  weighted
 runner_name                         
 Steve                   0        46
 Joe                     0        80
 Marsha                  1       100
 Kent                    0        80

我如何防止它成圆?你知道吗


Tags: 数据name框架data数字事情runnersteve
1条回答
网友
1楼 · 发布于 2024-06-17 08:47:13

分配一个float将导致Pandas给列一个float数据类型:

data['weighted'] = 0.0

import pandas as pd
data = pd.DataFrame({'winner':[0,0,1,0]}, index=pd.Series(['Steve', 'Joe', 'Marsha', 'Kent'], name='runner_name'), )
data['weighted'] = 0.0
data.ix['Steve', 'weighted'] = 45.88
print(data)

收益率

             winner  weighted
runner_name                  
Steve             0     45.88
Joe               0      0.00
Marsha            1      0.00
Kent              0      0.00

>>> print(data.dtypes)
winner        int64
weighted    float64
dtype: object

相关问题 更多 >