使用 csv 文件填充 pandas 数据框

问题描述 投票:0回答:1

我有两个文件:

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

请帮忙!

python pandas
1个回答
1
投票

您可以更轻松地做到这一点:

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])
© www.soinside.com 2019 - 2024. All rights reserved.