Два данных должны выводить уникальные значения в CSV с использованием python - PullRequest
1 голос
/ 29 мая 2020
• 1000 Как мне сделать этот вывод, подойдет любой метод.
Data 1:
sitename,
www.google.com,
www.facebook.com,
www.twitter.com,
www.amazon.com

Data 2
sitename, founding date
www.google.com, 09/14/1998
www.amazon.com, 07/05/1994

if data 1 == data2['founding date']:
    writer.writerow([Data1, Founding Date])
else:
    writer.writerow([Data1, ''])

Результат должен быть:

sitename, Founding date
www.google.com, 09/14/1998
www.facebook.com,
www.twitter.com,
www.amazon.com, 07/05/1994

Мой результат:

sitename, Founding date,
www.google.com
www.google.com, 09/14/1998
www.facebook.com,
www.twitter.com,
www.amazon.com
www.amazon.com, 07/05/1994

Спасибо за заранее!

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

Вы можете попробовать

data1 = '''
sitename,
www.google.com,
www.facebook.com,
www.twitter.com,
www.amazon.com
'''

data2 = '''
sitename, founding date
www.google.com, 09/14/1998
www.amazon.com, 07/05/1994
'''

data1_rows = list(filter(str, data1.split("\n")))
data2_dict = {i.split(',')[0].strip(): i.split(',')[1] for i in list(filter(str, data2.split("\n"))) if i.count(",") > 0}
for i in data1_rows:
    val = i.strip(",")
    if val in data2_dict:
        writer.writerow([val, data2_dict[val]])
    else:
        writer.writerow([i])

Это решение анализирует data2 для dict, а затем перебирает строки data1 и проверяет, имеет ли значение в строке data1 ключ в data2_dict, если да, он записывает в файл значение строки data1 с соответствующей строкой для data2, иначе только значение строки data1.

0 голосов
/ 29 мая 2020

Пробуем pandas ...

import pandas as pd
import io

Data1 = '''\
sitename,
www.google.com,
www.facebook.com,
www.twitter.com,
www.amazon.com
'''

Data2 = '''\
sitename, founding date
www.google.com, 09/14/1998
www.amazon.com, 07/05/1994
'''

d1 = pd.read_csv(io.StringIO(Data1), skipinitialspace=True)
d2 = pd.read_csv(io.StringIO(Data2), skipinitialspace=True, parse_dates=[1])

d3 = pd.merge(d1, d2, on='sitename', how='left')

print(d3[['sitename', 'founding date']])



Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...