Python 如何读取.txt文件并与.xlsx合并
我有一个大的myfile.txt(52375 kb,ln 86213,18),如下所示Python 如何读取.txt文件并与.xlsx合并,python,pandas,Python,Pandas,我有一个大的myfile.txt(52375 kb,ln 86213,18),如下所示 E.g myfile.txt "Name" "ID" "School" . . "steven" "1212" "harvard" . . "michael" "9898" "stanford" . . .
E.g
myfile.txt
"Name" "ID" "School" . .
"steven" "1212" "harvard" . .
"michael" "9898" "stanford" . .
. . .
. . .
In [1]
df1 = pd.read_csv("myfile.txt", sep = "\t", lineterminator = "\n")
Out [1]
Name ID School . .
steven 1212 harvard . .
michael 9898 stanford . .
. . .
. . .
但是,当我想与database.xlsx合并时,它不起作用。它仅显示合并后数据帧的标题
In [2]: df2 = pd.read_excel('Data Base Currency.xlsx')
Out [2]:
ID status
1212 mechanical engineering
9898 electrical engineering
In [3]: df3 = pd.merge(df1,df2, on = "ID", how = "inner")
**and then my merge statement doesn't work**
Out [3]:
Name ID School status
我的期望
Name ID School . .
steven mechanical engineering harvard . .
michael Electrical engineering stanford . .
. . .
. . .
可能有不同数据类型的列。 尝试运行此命令并告诉heppens:
df1["ID"] = df1["ID"].astype(int)
df2["ID"] = df2["ID"].astype(int)
df3 = pd.merge(df1,df2, on = "ID", how = "inner")
可能有不同数据类型的列。 尝试运行此命令并告诉heppens:
df1["ID"] = df1["ID"].astype(int)
df2["ID"] = df2["ID"].astype(int)
df3 = pd.merge(df1,df2, on = "ID", how = "inner")
看起来
df1
中的标签可能已关闭一个。df1[“ID”]
您期望的是什么?@PatrickHaugh my expect df1的格式将与我的行数据相同,但是当我编码pd.read\u csv(“myfile.txt”,sep=“\t”,lineterminator=“\n”)
名称将移动第一个标签前面是否有\t
?请尝试将open('myfile.txt')作为f:print(repr(next(f))进行检查。@PatrickHaugh是的,先生,标签后面有一个\t
,例如'“NAME”\t“ID”\t“
两个df中ID的数据类型是否相同?看起来df1
中的标签可能会被关闭一个。是否df1[“ID”]
你期望什么?@PatrickHaugh my expect df1的格式将与我的行数据相同,但是当我编码pd.read_csv(“myfile.txt”,sep=“\t”,lineterminator=“\n”)
名称将移动第一个标签前面是否有\t
的标签?尝试打开('myfile.txt')作为f:print打印(repr(next(f)))
检查。@PatrickHaugh是的,先生,标签后面有一个\t
,例如““NAME”\t“ID”\t”
两个df中ID的数据类型是否相同?在我的数据框上,我收到警告:列(5,6,8,10,11)的类型混合。问题是列数从0或1开始?请使用df.iloc[:,[您的列数]]按顺序选择它们````d类型警告:列(5,6,8,10,11)具有混合类型。在导入时指定dtype选项或将低内存设置为False。交互性=交互性,编译器=编译器,结果=结果)```如何解决此问题?通常,这意味着f.e.[2,3,4']列中有字符串和数字,因此应将其转换为相同的类型。这可以在加载时和加载后完成。在我的数据帧上,我收到警告:列(5,6,8,10,11)的类型混合。问题是列数从0或1开始?请使用df.iloc[:,[您的列数]]按顺序选择它们````d类型警告:列(5,6,8,10,11)具有混合类型。在导入时指定dtype选项或将低内存设置为False。交互性=交互性,编译器=编译器,结果=结果)```如何解决此问题?通常,这意味着f.e.[2,3,4']列中有字符串和数字,因此应将其转换为相同的类型。这可以在加载时和加载后进行。