首页 > 解决方案 > Pandas DataFrame 中的拆分列(定界);列长度​​与键错误相同

问题描述

我有一个 DataFrame,它有一个名为“金融周名称”的列,每个金融周都有“第 17 周”之类的内容。

  Financial Week Name   Day Part
    week 0          Breakfast
    week 0          Lunch
    week 0          Dinner
    week 1          Breakfast
    week 1          Lunch

问题是我无法从最小到最大对这些进行排序。我的想法是在“周”这个词之后的空格之后删除任何内容;本质上是划界的。我在数据框中添加了一个空列(名为“weekNo”),然后尝试使用 .str.split 方法将数字推送到新创建的列中:

 df[['Financial Week Name', 'weekNo']] = df['Financial Week Name'].str.split(' ', expand=True) 

但出现以下错误:

" ValueError: Columns must be same length as key"

我不确定如何从字符串“week x”的末尾获取数字值以到达单独的列,并尝试使用 .iloc 未成功地切出这些值。我很困惑;任何帮助将不胜感激。

标签: pythonpandas

解决方案


对于我的情况,我错误地在列名中加上了引号:

Corrected : no_match_df[['matched_url', 'cosine_score', 'jaccard_score', 'score', 'match_type']]
Mistake : no_match_df[['matched_url', 'cosine_score', 'jaccard_score', 'score', 'match_type']]

花了将近3个小时才弄清楚。


推荐阅读