【问题标题】:Pop first element in the data frame cell using python使用python弹出数据框单元格中的第一个元素
【发布时间】:2020-03-19 04:13:18
【问题描述】:

有一个带有值的数据框

     name         zip
0   newyork     newyorkZip codes,10009,10001,10002,10003
1   London      londonZip codes,25103,25126

如何从压缩列中弹出newyorkZip codes, 'londonZip codes'

预期输出

     name         zip
0   newyork     10009,10001,10002,10003
1   London      25103,25126

【问题讨论】:

  • 请务必在代码标签中添加预期输出。
  • 添加了@RavinderSingh13

标签: python regex pandas dataframe


【解决方案1】:

试试str.partition

df['zip'] = df['zip'].str.partition(',')[2]

Out[132]:
      name                      zip
0  newyork  10009,10001,10002,10003
1   London              25103,25126

【讨论】:

  • 系列对象没有属性 zip
【解决方案2】:

试试这个,它有点开箱即用,但应该可以工作

zip_updated = []
for i in df['zip']:
    i = ','.join(i.split(',')[1:])
    zip_updated.append(i)

df['zip_updated'] = zip_updated

之后,您可以继续使用 .drop() 函数删除旧的 zip 列

【讨论】:

    【解决方案3】:

    请您尝试以下操作。使用正则表达式。

    df['zip']=df['zip'].replace(regex=True,to_replace=r'([a-zA-Z]+ |[a-zA-Z]+,){1,}',value=r'')
    

    df 的输出如下。

        name        zip
    0   newyork     10009,10001,10002,10003
    1   London      25103,25126
    

    【讨论】:

      【解决方案4】:

      试试这个,

      df['zip']=df['zip'].str.split(',',expand=True).iloc[:,1:].fillna('').apply(','.join, axis=1).str.rstrip(',')
      

      输出:

          name        zip
      0   newyork     10009,10001,10002,10003
      1   London      25103,25126
      

      【讨论】:

      • 系列对象没有属性拆分
      • @user12157180 立即查看
      • 请检查我的预期输出
      • @user12157180 现在检查这个 oneliner
      猜你喜欢
      • 2011-06-22
      • 2020-08-27
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多