【发布时间】:2020-03-30 17:55:18
【问题描述】:
我有一个数据框,每行都包含字符串、浮点数和整数?
我需要从右到左提取所有整数和浮点值,直到出现字母表?
数据框(df1)是
df1:
text
0 NS-100ML(GLASS) IV 1 19.25
1 India 560 into SI 10 63.26
2 INJ 2 914.20
我需要df1 输出类似
df1:
text
0 [1, 19.25]
1 [10, 63.26]
2 [2, 914.20]
注意:请不要建议我取最后两个拆分字符串,因为我的下一个数据框 (df2) 看起来不同,如下所示,
df2:
text
0 NS-100ML(GLASS) IV 1.00 4.95 63.36 96.45
1 India into 456 SI 8.0 52.30 53.46 12.03
2 INJ 2.0 63.80 34.30 56.36
我的df2输出喜欢
df2:
text
0 [1.0, 4.95, 63.36, 96.45]
1 [8.0, 52.30, 53.46, 12.03]
2 [2.0, 63.80, 34.30, 56.36]
最终,我需要从右到左提取所有浮点数和整数(不同的数据帧可以有不同长度的整数和浮点数)
【问题讨论】:
-
也许
df['text2'] = df['text'].str.findall(r'\d{,3}\.\d{,3}')假设句点前后不超过三位数。如果要覆盖列,请将“text2”更改为“text”,但新列可能适合测试。 -
你的第一句话需要更精确(而不是问题:-|),例如(如果我的理解是正确的)“我有一个包含以一个或多个数字开头的行的数据框,后面是空格,后面是一串字符,最后一个不是数字,后面是浮点数和/或整数的字符串表示形式,以空格分隔。"
-
您仍然需要澄清您的问题(参考我之前的评论),部分原因是您应该感谢许多 SO 成员,他们将来会阅读您的问题。
-
您在发布答案后在字符串中添加了数字。这从本质上改变了问题,使答案不正确甚至荒谬。你显然不能那样做。我很惊讶这对你来说并不明显。请将您的问题回滚到该编辑之前。如果你愿意,你可以再问一个问题。
-
我投票决定将此问题作为离题结束,因为在发布了几个答案后,OP 对问题进行了实质性更改,导致答案不正确。 OP 被要求回滚到原来的问题,但没有这样做。
标签: regex python-3.x pandas dataframe