pandas 对 Dataframe 列进行划分然后舍入

wgmfuz8q  于 2023-06-28  发布在  其他
关注(0)|答案(2)|浏览(106)

我一直在操作一些 Dataframe ,但不幸的是,我有两个百分比列,一个格式为'61.72',另一个格式为'0.62'。
我只想用“61.72”格式的百分比列除以100,然后将其四舍五入为2.dp,以便与数据框一致。
有什么简单的方法吗?
我的数据框有两列,一列叫做“A”,另一列叫做“B”,我想格式化“B”。

bksxznpy

bksxznpy1#

您可以将divround一起使用:

df = pd.DataFrame({'A':[61.75, 10.25], 'B':[0.62, 0.45]})
print (df)
       A     B
0  61.75  0.62
1  10.25  0.45

df['A'] = df['A'].div(100).round(2)
#same as
#df['A'] = (df['A'] / 100).round(2)
print (df)
      A     B
0  0.62  0.62
1  0.10  0.45
3htmauhk

3htmauhk2#

这个问题已经得到了回答,但这里有另一个解决方案,它是显着更快标准之一。

df = pd.DataFrame({'x':[10, 3.50], 'y':[30.1, 50.8]})
print (df)
>>      x     y
    0  10.0  30.1
    1   3.5  50.8

df = df.loc[:].div(100).round(2)
print (df)
>>        x       y
   0    0.10    0.30
   1    0.03    0.50

为什么更喜欢这个解决方案??
好吧,这个警告就足够了-“如果您使用df ['A'],则试图在DataFrame的切片副本上设置值,因此,请尝试使用.loc[row_indexer,col_indexer] = value。
此外,请检查此以了解更多信息https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

相关问题