【问题标题】:split column by delimiter and deleting expanded column按分隔符拆分列并删除扩展列
【发布时间】:2019-12-27 20:33:10
【问题描述】:

我想知道是否有一种方法可以通过分隔符拆分列,然后删除展开的列。目前,这是我正在尝试做的,但它并没有像我想要的那样工作。

import pandas as pd

df = {'ID': [3009, 129,119,120,121 ],
  'temp': ['75.0~54.0','75.0~54.0','75.0~54.0','75.0~54.0','75.0~54.0'],
  'Prob': [1,1,0.8,0.8056,0.9]}

df = pd.DataFrame(df)


       ID    Prob           temp
0    3009  1.0000       75.0~54.0
1     129  1.0000       75.0~54.0  
2     119  0.8000       75.0~54.0  
3     120  0.8056       75.0~54.0  
4     121  0.9000       75.0~54.0  
5     122  0.8050       75.0~54.0  

df['temp','temp2'] = = df['temp'].str.split('~', expand=True)

我的目标是通过分隔符将其拆分并在现有数据框 (df) 中添加一个新列:

       ID    Prob        temp   temp2
0    3009  1.0000       75.0    54.0
1     129  1.0000       75.0    54.0  
2     119  0.8000       75.0    54.0  
3     120  0.8056       75.0    54.0  
4     121  0.9000       75.0    54.0  
5     122  0.8050       75.0    54.0  

这样我就可以删除 temp2 列

【问题讨论】:

    标签: python pandas dataframe split delimiter


    【解决方案1】:

    您可以索引拆分(这样,您不必处理temp2 列):

    df['temp'] = df['temp'].str.split('~', expand=True)[0]
    print(df)
    

    打印:

         ID  temp    Prob
    0  3009  75.0  1.0000
    1   129  75.0  1.0000
    2   119  75.0  0.8000
    3   120  75.0  0.8056
    4   121  75.0  0.9000
    

    【讨论】:

    • 不错!这正是我想要的!
    【解决方案2】:

    如果您想从数据框中删除该列,您可以尝试使用str.split(),然后使用.drop():

    import pandas as pd
    import numpy as np
    
    data = {'ID': [3009, 129,119,120,121 ],
      'temp': ['75.0~54.0','75.0~54.0','75.0~54.0','75.0~54.0','75.0~54.0'],
      'Prob': [1,1,0.8,0.8056,0.9]}
    df = pd.DataFrame(data)
    df['temp~'] = df['temp'].str.split('~')
    df['temp_1'] = df['temp~'].str.get(0)
    df = df.drop(columns=['temp~'])
    print(df)
    

    输出:

         ID       temp    Prob temp_1
    0  3009  75.0~54.0  1.0000   75.0
    1   129  75.0~54.0  1.0000   75.0
    2   119  75.0~54.0  0.8000   75.0
    3   120  75.0~54.0  0.8056   75.0
    4   121  75.0~54.0  0.9000   75.0
    

    【讨论】:

      猜你喜欢
      • 2021-07-26
      • 2017-12-24
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 2018-03-12
      相关资源
      最近更新 更多