用循环结果熊猫替换列值

时间:2021-01-17 23:41:11

标签: python pandas dataframe for-loop

我有如下所示的数据框:

State   State_theft_sum Model_1 Model_year_1
Alabama 2154    Chevrolet Pickup (Full Size)    2005.0  
Alaska  547 Chevrolet Pickup (Full Size)    2003.0
Arizona 5270    Honda Accord    1997.0  

DF 一直在继续,因此单独更改值不是方法。我虽然我可能能够使用循环的结果替换它们,这将按照我想要的方式格式化字符串,这是循环:

for model_year in df_total['Model_year_1']:
    model_year = model_year.split('.')
    model_year = model_year[0]
    print(model_year)

循环结果:

2005
2003
1997
2004
1996
1997
(...)

我需要将其格式化为字符串,因为我会将其用作等值线图的文本。

有什么方法可以更改 DF 列中的值,而无需从循环中创建新的 DF,然后加入它们,然后删除带有 .0 的列?

1 个答案:

答案 0 :(得分:1)

您可能只需将其转换为 float,然后转换为 int,然后转换为 str 以避免循环。

df["Model_year_1"] = df["Model_year_1"].astype('float').astype('int').astype('str')