我有一个制表符分隔的数据框,看起来像(例如):
A B C
gene1 AHX21832.1 EEL39984.1,ARO60330.1 EEL39984.1
gene2 EEL39984.1,ARO60330.1 ARO60330.1 ARO60330.1
gene3 AYF09030.1,EEL37774.1,AQY42173.1 AQY42173.1 AQY42173.1
以下脚本在列表中效果很好:
values = ["AHX21832.1", "EEL39984.1,ARO60330.1", "AYF09030.1,EEL37774.1,AQY42173.1"]
如何在熊猫的数据框上实现此脚本?由于熊猫没有re.findall。
答案 0 :(得分:0)
看看https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.findall.html。看起来有可能在数据帧上做re.findall
的等效操作。
for column, data in df.iteritems():
res = data.str.findall("[A-Z0-9]\.(\d+)")
因此对于您在repl.it链接中发布的代码,您可以通过执行以下操作获得相同的结果:
import pandas as pd
values = pd.Series(["AHX21832.1",
"EEL39984.1,ARO60330.1",
"AYF09030.1,EEL37774.1,AQY42173.1"])
res = values.str.findall("[A-Z0-9]\.(\d+)")
for x in res:
print("Found", x)
print("total", res.shape[0])