Как искать и упорядочивать имена файлов в файле .csv в python? - PullRequest
0 голосов
/ 02 июля 2020

У меня есть два файла A.csv и B.csv, содержащие список имен файлов в первом столбце и числовое значение c во втором столбце. Имена файлов, перечисленные в обоих файлах .csv, должны быть одинаковыми (иногда некоторые имена файлов в A отсутствуют в B, но имена файлов в B всегда присутствуют в A), но они находятся в другом порядке, а число c значение каждого имени файла отличается. Количество имен файлов в файлах может находиться в диапазоне от 90 до 200 тысяч. Пример того, как могут выглядеть два файла:

cat A.csv
a          -7.8
b          -13.1
c          -0.1
d          -3.5

cat B.csv
b          3.149
c          0.197
a          14.263

Мне нужно будет сравнить два значения для каждого имени файла, используя разные методы, поэтому было бы полезно иметь новый файл, который должно выглядеть так:

cat newfile.csv
a          -7.8          14.263
b          -13.1         3.149
c          -0.1          0.197
d          -3.5

Как проще всего сделать это в python?

1 Ответ

1 голос
/ 02 июля 2020

Это работает на python3 (проверено на ноутбуке jupyter):

import pandas as pd

A = pd.read_csv("A.csv",delimiter='          ',names=['name','value'])
B = pd.read_csv("B.csv",delimiter='          ',names=['name','value'])
merge = pd.merge(A, B, on='name', how='left')

display(A)
display(B)
display(merge)

result:

    name    value
0   a       -7.8
1   b       -13.1
2   c       -0.1
3   d       -3.5

    name    value
0   b       3.149
1   c       0.197
2   a       14.263

    name    value_x     value_y
0   a        -7.8       14.263
1   b        -13.1      3.149
2   c        -0.1       0.197
3   d        -3.5       NaN

И если вы хотите сохранить объединенный фрейм данных, вы можете добавить:

merge.to_csv('merge.csv', sep='\t')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...