Python 添加小数位

Python 添加小数位,python,pandas,Python,Pandas,如何循环遍历此数据帧,并为大于200的值从右侧添加两位小数。例如,999大于200,因此将其设为9.99 如果要在所有列中应用: 如果您想申请一个系列,请使用: 示例 df['col1']= df['col1'].mask(df['col1'].ge(200),df['col1'].div(100)) 另一种选择 或 样本df的输出 df = pd.DataFrame(np.where(df.ge(200),df.div(100),df), columns

如何循环遍历此数据帧,并为大于200的值从右侧添加两位小数。例如,999大于200,因此将其设为9.99

如果要在所有列中应用:

如果您想申请一个系列,请使用:

示例

df['col1']= df['col1'].mask(df['col1'].ge(200),df['col1'].div(100))
另一种选择

样本df的输出

df = pd.DataFrame(np.where(df.ge(200),df.div(100),df),
                  columns = df.columns,index = df.index)
applymap()
与条件
lambda
函数一起使用,如果单元格值大于200,该函数将除以100

    col1
0   9.99
1  10.00
输出:

import pandas as pd
d = {'col1': [999, 1000, 100]}
df = pd.DataFrame(data=d)
df = df.applymap(lambda x: x/100 if x >= 200 else x) 
print(df)

那么
999
是否会变成
9.99
?您期望的输出是什么?刚刚编辑了最后一部分抱歉,只有大于某个特定值时,它才会在整个数据帧中迭代并添加这些小数。为什么要在此处应用map?@ansev因为如果他向其中添加更多列,您的上述函数将无法工作
applymap()
应用于数据帧的每个元素。此外,
np。其中
在pandas数据帧上调用本机
numpy
函数,以便您将类型转换回
np.matrix
,以便能够使用它。如果可以,则应使用本机函数。有关更多列,请参见same@ansev不,您需要像上面那样指定列。这太冗长了,为什么不直接使用applymap对每一列执行此操作呢。
 df=df.where(df.lt(200),df.div(100))
#df['col1']=df['col1'].where(df['col1'].lt(200),df['col1'].div(100))
df = pd.DataFrame(np.where(df.ge(200),df.div(100),df),
                  columns = df.columns,index = df.index)
    col1
0   9.99
1  10.00
import pandas as pd
d = {'col1': [999, 1000, 100]}
df = pd.DataFrame(data=d)
df = df.applymap(lambda x: x/100 if x >= 200 else x) 
print(df)
     col1
0    9.99
1   10.00
2  100.00