【问题标题】:Splitting columns but not all new rows are created拆分列但并非创建所有新行
【发布时间】:2020-09-30 17:10:15
【问题描述】:

我有一个如下所示的 csv:

    FIPS     display_name               Value
    2013    "Aleutians East, (AK)"      172.9
    2016    "Aleutians West, (AK)"      172.2 

我想将一列分成两列。我试过这个:

df['county','state'] = df['display_name'].str.split(', ',expand=True)

输出是这样的:

cnty_fips   display_name    Value   (county, state)
2013    "Aleutians East    172.9    "Aleutians East
2016    "Aleutians West    172.2    "Aleutians West

不知道为什么数据的后半部分被擦除而不是新列。 当我拆分一列,一列给出县,另一列给出州时,如何获得两个新列?

【问题讨论】:

    标签: python pandas strsplit


    【解决方案1】:

    这里的问题是str.split 返回两列,但您试图将该值分配给单个列。以下应产生所需的输出。

    temp = df.display_name.str.split(", ", expand=True)
    temp.columns = ["county", "state"]
    
    pd.concat([df.drop("display_name", axis=1), temp], axis=1)
    
       FIPS  value          county state
    0  2013  172.9  Aleutians East  (AK)
    1  2016  172.2  Aleutians West  (AK)
    

    【讨论】:

      【解决方案2】:

      当您将一列拆分为两个单独的列时,您需要将它们存储在两个单独的列中。在您的情况下,您将其存储在列中,但没有将其包装到数据框中。

      df = pd.DataFrame({'Fips': [2013,2016], 
                         'display_name': ["Aleutians East, (AK)","Aleutians West, (AK)"],
                         'value': [172.9,172.2]})
      df[['county','state']] = df['display_name'].str.split(',',expand=True)
      

      请注意,这两列作为df[['county','state']] 一起包装到数据框中,而您只是将其写为df['county','state']

      输出如下:

         Fips          display_name  value          county  state
      0  2013  Aleutians East, (AK)  172.9  Aleutians East   (AK)
      1  2016  Aleutians West, (AK)  172.2  Aleutians West   (AK)
      

      如果要在分离前删除原来的列

      df = df.drop('display_name',axis=1)
      print(df)
         Fips  value          county  state
      0  2013  172.9  Aleutians East   (AK)
      1  2016  172.2  Aleutians West   (AK)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-03-03
        • 2022-08-10
        • 2018-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-21
        相关资源
        最近更新 更多