因此,我有一个csv文件,其中我需要根据txt文件上的值来筛选行。有没有一个简单的方法可以在熊猫身上做到这一点?csv将有大约2000行,而txt文件有大约400个数据点。我需要生成一个csv,其中的行与txt文件中的数据相匹配。
CSV文件如下所示:
Chromosome Gene Start End
1 PERM1 5 6
2 AGRN 7 10
3 MIB2 9 12该文本文件如下所示
PERM1
NADK
GNB1谢谢
发布于 2020-11-02 23:20:00
首先将文本文件读入列表或元组:
lines = tuple(open(filename, 'r'))然后过滤文本文件中存在的行:
df = read_csv('csvfile')
result = df[df['Chromosome Gene'].isin(lines)]发布于 2020-11-02 23:24:28
使用pandas read和filter功能非常简单。我假设您有一个名为input_csv_file的输入.csv文件和一个名为filter.csv的过滤器文件。输入文件有一列"filter_locatitons“,而input_file有一列叫做"locations":
input_df = pd.read_csv('input_csv_file.csv')
filter_df = pd.read_csv('filter.csv')
filtered_df = input_df[[input_df['location'].isin(filter_df['filter_locations']]发布于 2020-11-03 01:54:04
这可以通过使用掩码并在数据帧中加载这两个文件来实现。下面的代码假设您的测试文件没有头文件,并且csv文件是空格分隔的
import pandas as pd
df1 = pd.read_csv('csvfile.csv', delimiter=' ')
df2 = pd.read_csv('textfile.txt', header=None)
df2.columns = ['Gene']
m = df1.Gene.isin(df2.Gene)
df3 = df1[m]
print(df3) https://stackoverflow.com/questions/64648222
复制相似问题