如何四舍五入到零的地方点之后只有值索引结束与特定字符串在Python熊猫?



我有熊猫DataFrame如下:

col1    | number
--------------------
acb_sum | 500.000
deff     | 0.509
ghi     | 0.342

In my table "col1"是索引,我只需要在索引以"_sum"结尾的列中使用四舍五入值。

因此,我需要像下面这样:

col1    | number
--------------------
acb_sum | 500
deff     | 0.509
ghi     | 0.342

因为只有在第一行索引("col1")以"_sum"结尾我们在点后面把值四舍五入到0

如何在Python Pandas中实现?

您可以使用布尔索引(但数字现在是str):

mask = df.index.str.endswith("_sum")
df.loc[mask, "number"] = df.loc[mask, "number"].apply(lambda x: str(round(x)))
print(df)

打印:

number
col1          
acb_sum    500
deff     0.509
ghi      0.342

EDIT:更改选定的列:

cols_to_change = ["number1", "number2", "number3"]
mask = df.index.str.endswith("_sum")
df.loc[mask, cols_to_change] = df.loc[mask, cols_to_change].apply(
lambda x: [str(round(v)) for v in x]
)
print(df)

打印:

number1 number2    xxx number3
col1                                  
acb_sum     500     400  111.3     200
deff      0.509   401.0  112.3   201.0
ghi       0.342   402.0  113.3   202.0

dfused:

number1  number2    xxx  number3
col1                                     
acb_sum  500.000    400.0  111.3    200.0
deff       0.509    401.0  112.3    201.0
ghi        0.342    402.0  113.3    202.0

最新更新