我一直在操纵一些数据框,但不幸的是我有两个百分比列,一个格式为'61 .72',另一个格式为'0.62'.
我想将列中的'61 .72'格式的百分比除以100,然后将其舍入为2.dp,以便与数据帧保持一致.
有这么简单的方法吗?
我的数据框有两列,一列叫做'A',另一列叫'B',我想格式化'B'.
非常感谢!
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)
小智 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
| 归档时间: |
|
| 查看次数: |
5942 次 |
| 最近记录: |