【发布时间】:2018-09-25 06:00:59
【问题描述】:
我正在尝试
文件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 开头的空间。但是删除它和以前的数据框脚本创建的索引列并没有改变任何东西。任何人都对为什么或如何解决有任何线索?任何帮助将不胜感激,干杯。
【问题讨论】:
-
什么返回
print (file1.columns.tolist())? -
@jezrael 你好,它返回:['#query_name KEGG_KOs']
标签: python pandas dataframe join merge