熊猫Python - 将列除以100(然后舍入2.dp)

Sco*_*tEU 4 python pandas

我一直在操纵一些数据框,但不幸的是我有两个百分比列,一个格式为'61 .72',另一个格式为'0.62'.

我想将列中的'61 .72'格式的百分比除以100,然后将其舍入为2.dp,以便与数据帧保持一致.

有这么简单的方法吗?

我的数据框有两列,一列叫做'A',另一列叫'B',我想格式化'B'.

非常感谢!

jez*_*ael 9

你可以用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
Run Code Online (Sandbox Code Playgroud)

  • 你是快速的先生哈哈 (3认同)

小智 5

这个问题已经得到解答,但这是另一种解决方案,它明显更快标准

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
Run Code Online (Sandbox Code Playgroud)

为什么更喜欢这个解决方案?

好吧,这个警告就足够了 - “如果您使用 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