gpt4 book ai didi

python - 合并包含同一列的两个文件中的数据 - Python

转载 作者:行者123 更新时间:2023-12-01 09:00:30 25 4
gpt4 key购买 nike

我正在尝试

文件1:

     #query_name KEGG_KOs
10 PROKKA_00019 K00240
11 PROKKA_00020 K00246
12 PROKKA_00022 K02887

文件2:

Geneid  Chr Count
PROKKA_00019 k141_1000050 102
PROKKA_00020 k141_1000050 132
PROKKA_00021 k141_1000054 36

file3(所需输出):

Geneid  KEGG_KOs    Chr Count
PROKKA_00019 K00240 k141_1000050 102
PROKKA_00020 K00246 k141_1000050 132

这似乎是正确的脚本:

import pandas as pd
file1 = pd.read_csv('file1.txt', sep="\t")
file2= pd.read_csv('file2.txt', sep="\t")
file3= pd.merge(file1, file2, left_on='#query_name', right_on='Geneid').drop(['#query_name'],axis=1)
print(merged)

但是,它返回一条消息:

Traceback (most recent call last):
File "**FilePath**C", line 4, in <module>
merged = pd.merge(genes, counts, left_on='#query_name', right_on='Geneid').drop(['#query_name'],axis=1)
File "**FilePath**", line 61, in merge
validate=validate)
File "**FilePath**", line 551, in __init__
self.join_names) = self._get_merge_keys()
File "**FilePath**", line 871, in _get_merge_keys
lk, stacklevel=stacklevel))
File "**FilePath**", line 1382, in _get_label_or_level_values
raise KeyError(key)
KeyError: '#query_name'

我想可能是因为 file1 开头有空格。但是删除它和以前的数据框脚本创建的索引列并没有改变任何东西。有人知道为什么或如何解决吗?任何帮助将不胜感激,干杯。

@jezrael

最佳答案

您可以跳过第一行 - csv 的标题并通过 read_csv 中的参数 names 设置新的列名称,然后像 file2 中那样设置相同的列,因此不需要 drop :

file1 = pd.read_csv('file1.txt', sep="\t", skiprows=1, names=['Geneid','KEGG_KOs'])
print (file1)
Geneid KEGG_KOs
10 PROKKA_00019 K00240
11 PROKKA_00020 K00246
12 PROKKA_00022 K02887

file2= pd.read_csv('file2.txt', sep="\t")

file3= pd.merge(file1, file2, on='Geneid')
print(merged)

关于python - 合并包含同一列的两个文件中的数据 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52491530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com