我有两个文件:
File1:只有标题的空数据框。 (我希望填充的数据框)
文件2:包含以空格分隔的元素且列数不均匀的 CSV 文件
文件1:
item1 A B C D E F G
item2 A B C D E
item3 A
item4 C D E F G
文件2:
item A B C D E F G
我期望的输出如下:
item A B C D E F G
item1 A B C D E F G
item2 A B C D E
item3 A
item4 C D E F G
代码如下并部分工作:
import pandas as pd
df = pd.read_csv('File1.tsv', header=0)
with open('File2.csv', "r") as f1:
for line in f1:
line_elements = line.strip().split()
print(line_elements)
for element in line_elements:
# Find a matching element in any column of File 2
match = df1[df1.isin([element]).any(axis=1)]
if not match.empty:
df._append(df[match],element, ignore_index=True)
print("last element...")
print(element)
print("last match....")
print(match)
print("final df...")
print(df)
最后打印的元素是“G”。除此之外,比赛和最终 df 都是空的。新版本中 df.append 被替换为 df._append
请帮忙!
您可以更轻松地做到这一点:
import pandas as pd
df1 = pd.read_csv('File1.tsv', header=0, sep=' ')
df2 = pd.read_csv('File1.csv', header=0, sep=' ')
df2 = pd.concat([df2, df1])