【问题标题】:Splitting single text column into multiple columns Pandas将单个文本列拆分为多列 Pandas
【发布时间】:2022-01-17 11:59:42
【问题描述】:

我正在从各种来源提取原始数据。经过一个过程,我可以形成一个看起来像这样的数据框。

                                                              data
0               ₹ 16,50,000\n2014 - 49,000 km\nJaguar XF 2.2\nJAN 16
1               ₹ 23,60,000\n2017 - 28,000 km\nMercedes-Benz CLA 200 CDI Style, 2017, Diesel\nNOV 26 
2               ₹ 26,00,000\n2016 - 44,000 km\nMercedes Benz C-Class Progressive C 220d, 2016, Diesel\nJAN 03

我想按原始数据出现的顺序将此原始数据框拆分为相关列:价格、年份、里程、姓名、日期

我曾尝试将df.data.split('-', expand=True) 与其他分隔符选项按顺序以及一些 lambda 函数一起使用来实现此目的,但没有取得多大成功。

在将此数据拆分为相关列时需要帮助。

预期输出:

    price       year    mileage           name           date
    16,50,000   2014    49000   Jaguar 2.2 XF Luxury    Jan-17
    23,60,000   2017    28000   CLA CDI Style           Nov-26    
    26,00,000   2016    44000   Mercedes C-Class C220d  Jan-03

【问题讨论】:

  • 大多数情况下看起来像在 '\n' 和 ' - ' 上进行拆分。您想提供输出的样子吗?
  • 已添加预期输出。

标签: python pandas string dataframe split


【解决方案1】:

尝试在'\n' 上拆分,然后在'-' 上进行拆分

df[["Price","Year-Mileage","Name","Date"]] =df.data.str.split('\n', expand=True)
df[["Year","Mileage"]] =df ["Year-Mileage"].str.split('-', expand=True)
df.drop(columns=["data","Year-Mileage"],inplace=True)
print(df)

    Price         Name          Date      Year  Mileage
0   ₹ 16,50,000 Jaguar XF 2.2   JAN 16  2014    49,000 km
2   ₹ 26,00,000 Mercedes Benz C-Class Progressive C 220d, 2016, Diesel  JAN 03  2016    44,000 km
1   ₹ 23,60,000 Mercedes-Benz CLA 200 CDI Style, 2017, Diesel   NOV 26  2017    28,000 km

【讨论】:

    猜你喜欢
    • 2021-01-24
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 2018-02-25
    • 2016-05-31
    • 2020-02-10
    相关资源
    最近更新 更多