python - 正则表达式将用逗号分隔的字符串替换为熊猫数据框中的总和
问题描述
我有一个制表符分隔的数据框,看起来像(例如):
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"]
如何在我的熊猫数据框上实现这个脚本?由于 pandas 中没有 re.findall 。
解决方案
看看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])
推荐阅读
- google-api - 可以指示 Google Vision API 仅检测单个字符还是非英文字符串?
- cakephp-3.x - 如何在 CAKEPHP 3.x 中获取表记录时进行组合查询参数
- java - java.lang.ClassNotFoundException:找不到类“com.google.android.gms.ads.MobileAdsInitProvider”
- python - 分类器的性质和冗余
- c# - 在哪里可以找到 Windows.UI.Xaml.Media.Imaging 命名空间?
- android - 将文本和图像添加到 ListView?
- python - scikit-learn 中的交叉验证:(X_test, y_test) 的平均绝对误差
- c++ - C++ 外部的垃圾收集
- gradle - 错误:包 android.test 不存在
- python - 使用没有 wtforms 的烧瓶进行表单验证