【发布时间】:2020-09-10 04:00:08
【问题描述】:
我有一个带有 for 循环的函数,它返回一堆字符串,例如:
58,冥王星 第172章 5、桃子
如何在 pandas 数据框中的一列中获取字符串的第一部分(数字),在第二列中获取第二部分(水果)。列应命名为“金额”和“水果”。
这是目前为止的代码:
regex = r"(\d+)( ML/year )(in the |the )([\w \/\(\)]+)"
for line in finalText.splitlines():
matches = re.finditer(pattern, line)
for matchNum, match in enumerate(matches, start=1):
print (match.group(1) +","+ match.group(4))
我正在使用 re 从一大块文本中过滤掉我需要的数据,但现在它只是打印到控制台,我需要它进入数据框。
基本上,该代码中的最后一个打印语句需要更改,因此我插入数据帧而不是打印。
最终文本示例为:
(a)58 ML/Y 在梨区 (二) 苹果地区 64 ML/Y
纯文本
【问题讨论】:
-
使用 append 函数追加数据帧。在您的示例中,您想要 58 和桃子?其他人都掉了?
-
基本上我希望 match.group(1) 在一个列中,而 match.group(4) 在另一列中。
-
用逗号分割字符串,可以使用
s.split(','),其中s是字符串的名称 -
可以不给df[matchNum] = [match.group(1), match.group(4)]
-
首先您需要通过创建一个空的数据框来定义数据框。
标签: python pandas dataframe python-re