[更新我的问题]
我的文本文件如下所示,
#File_infoomation1
#File_information2
A B C D
1 2 3 4.2
5 6 7 8.5 #example.txt separate by tab '\t' column A dtype is object
我想将文本文件与基于列E的csv数据库文件合并。该列包含整数。
E,name,age
1,john,23
5,mary,24 # database.csv column E type is int64
所以我尝试读取文本文件,然后删除前2个不需要的头行。
example = pd.read_csv('example.txt', header = 2, sep = '\t')
database = pd.read_csv('database.csv')
request = example.rename(columns={'A': 'E'})
New_data = request.merge(database, on='E', how='left')
但结果并没有出现我想要的东西,而是在列名和年龄中显示NaN,
我认为int64
和object
dtype是错误所在,任何人都知道如何解决这个问题?
E,B,C,D,name,age
1,2,3,4.2,NaN,NaN
5,6,7,8.5,NaN,NaN
答案 0 :(得分:0)
您只需在代码中对其进行编辑:
而不是
example = pd.read_csv('example.txt', header = 2, sep = '\t', delim_whitespace=False )
使用此:
example = pd.read_csv('example.txt', sep = ' ' ,index_col= False)
答案 1 :(得分:0)
其实我尝试用以下方式阅读你的文件:
example = pd.read_csv('example.txt', header = 2, sep = '\t')
# Renaming
example.columns = ['E','B','C','D']
database = pd.read_csv('database.csv')
New_data = example.merge(database, on='E', how='left')
然后返回:
E B C D name age
0 1 2 3 4.2 john 23
1 5 6 7 8.5 mary 24
编辑:实际上不清楚原始example.txt
文件的分隔符。如果是空格,请尝试sep='\s'
代替sep=' '
空格。