【问题标题】:Converting data destined for a pandas.series to a clean array [closed]将发往 pandas.series 的数据转换为干净的数组 [关闭]
【发布时间】:2017-03-03 05:14:03
【问题描述】:

我需要创建三个pandas.Series (x, y, z)。用于此的数据以各种方式格式化。一些由\n; 分隔,一些仅使用空格分隔。我想要一种将这些数据提取到列表中的通用方法。数据看起来像:

x is "\n -10.03 -7.02 -0.05 9.96 20 40"
y is "\n 0.70;\n 0.79;\n 0.90;\n 1.00"
z is "\n 100.00 100.00 100.00 100.00 100.00 100.00;\.." (24 times)

【问题讨论】:

  • 你有 3 或 4 个问题,请将它们分成几个帖子

标签: python pandas type-conversion


【解决方案1】:

这可以使用正则表达式和列表推导来完成:

代码:

import re
split_pattern = re.compile(r'[\n \t;]+')

x = '\n -10.03 -7.02 -0.05 9.96 20 40'
y = '\n 0.70;\n 0.79;\n 0.90;\n 1.00'
z = '\n 100.00 100.00 100.00 100.00 100.00 100.00;'

for data in (x, y, z):
    data_list = [float(d) for d in split_pattern.split(data) if d != ""]
    print(data_list)

结果:

[-10.03, -7.02, -0.05, 9.96, 20.0, 40.0]
[0.7, 0.79, 0.9, 1.0]
[100.0, 100.0, 100.0, 100.0, 100.0, 100.0]

【讨论】:

  • 非常感谢。这正是我现在想要的。很抱歉一开始这个问题不清楚。 :)
猜你喜欢
  • 2012-05-04
  • 2014-04-13
  • 1970-01-01
  • 2016-12-21
  • 2014-06-14
  • 2023-01-20
  • 2023-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多