【问题标题】:Change a dataframe column from text to numbers in pandas dataframe将数据框列从文本更改为熊猫数据框中的数字
【发布时间】:2020-07-15 21:41:12
【问题描述】:

使用 pandas,我在这里有一个数据框,它描述了一些关于臭氧的数据

ozone_data = pd.read_csv('https://www.dropbox.com/s/0s9ui4h90j7xaxg/Dataset_ozone.csv?dl=1', sep=';')

在这个数据集中,我有一个名为“pluie”的列。它描述了“Sec”或“Pluie”。

我想将该列的值从字符串“Sec”更改为数字 2,并从字符串“Pluie”更改为数字 1

我不知道该怎么办,有人可以帮我吗?

【问题讨论】:

    标签: python pandas dataframe dataset


    【解决方案1】:

    pandas.Series.apply 与 lambda 一起使用:

    ozone_data['pluie'] = ozone_data['pluie'].apply(lambda x: 1 if x == 'Pluie' else 2)
    

    或使用numpy.where

    df['pluie'] = np.where(df['pluie'] == 'Pluie', 1,2)
    

    还有其他几种方法可以达到相同的结果。

    【讨论】:

      【解决方案2】:

      最简单的方法是创建一个映射字典,其中字符串值作为键,数字作为值。然后在有问题的列上调用 pd.replace() 并将字典作为参数传递。

      前:

      map_dict = {"Sec": 2, "Pluie":1}
      ozone_Data['pluie'].replace(map_dict, inplace=True)
      

      最大的优势是这允许您为任意数量的值创建映射。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-06
        • 1970-01-01
        • 2017-10-02
        • 1970-01-01
        • 1970-01-01
        • 2021-07-31
        • 2022-10-08
        • 1970-01-01
        相关资源
        最近更新 更多