【问题标题】:Python reshaping a list of strings based on delimiterPython根据分隔符重塑字符串列表
【发布时间】:2023-03-07 13:36:01
【问题描述】:

我从 Rest API 调用返回了用竖线分隔的数据:

data = ['Bob|37', 'Eric|40']

我从第一“行”中提取了标题信息并将其拆分为一个列表:

column_list = ['Name','Age']

我正在尝试将其读入熊猫数据框:

pd.DataFrame(data,columns=column_list)

不出所料,它抱怨数据格式错误

"ValueError: 传递值的形状是 (1, 2),索引意味着 (2, 2)"

拆分数据列表中的字符串以便能够将其加载到数据框中的最佳方法是什么?

【问题讨论】:

  • 可能有更好的熊猫专用方式,但[row.split('|') for row in data] 是我在纯 python 中的做法
  • 谢谢@Hamms 这也有效。

标签: python list pandas


【解决方案1】:

试试这个:

data = ['Bob|37', 'Eric|40']

df = pd.Series(data).str.split('|', expand=True)
df.columns = ['Name', 'Age']
print df

   Name Age
0   Bob  37
1  Eric  40

【讨论】:

    【解决方案2】:

    这是另一种单行解决方案(使用.str.extract())函数:

    In [20]: df = pd.Series(data).str.extract(r'(?P<Name>.*?)\|(?P<Age>.*)', expand=True)
    
    In [21]: df
    Out[21]:
       Name Age
    0   Bob  37
    1  Eric  40
    

    【讨论】:

      猜你喜欢
      • 2022-01-04
      • 1970-01-01
      • 2011-08-04
      • 2019-02-06
      • 1970-01-01
      • 1970-01-01
      • 2019-03-30
      • 2019-09-19
      • 2011-06-09
      相关资源
      最近更新 更多