Не могу соответствовать списку кортежей, чтобы диктовать - PullRequest
0 голосов
/ 21 ноября 2019

У меня есть list из tuples с именем a

[('39965983', 'Mugshots.com ID'), ('11/07/1974', 'Birth date'), ('Compliant', 'Status'), ('White', 'Race'), ('Male', 'Gender'), ('38', 'Age'), ('5′ 9″ (1.75 m)', 'Height'), ('245 lb (111 kg)', 'Weight'), ('Brown', 'Eyes'), ('Brown', 'Hair'), ('521 OLD HIGHWAY 75', 'Address'), ('ONEONTA', 'City'), ('Alabama', 'State'), ('35121', 'Zip'), ('No', 'Address is Temporary'), ('5/29/2012', 'Address Last Verified'), ('5/26/2006', 'Registration Date'), ('N/A', 'Scars / Marks / Tattoos'), ('20040921', 'Released'), ('39965553', 'Mugshots.com ID'), ('11/09/1961', 'Birth date'), ('Compliant', 'Status'), ('Black', 'Race'), ('Male', 'Gender'), ('51', 'Age'), ('6′ 0″ (1.83 m)', 'Height'), ('220 lb (100 kg)', 'Weight'), ('Brown', 'Eyes'), ('Black', 'Hair'), ('314 DENSON RD', 'Address'), ('HAYDEN', 'City'), ('Alabama', 'State'), ('35079', 'Zip'), ('No', 'Address is Temporary'), ('5/15/2012', 'Address Last Verified'), ('11/09/2007', 'Registration Date'), ('N/A', 'Scars / Marks / Tattoos'), ('N/A', 'Aliases'), ('20050411', 'Released'), ('39965949', 'Mugshots.com ID'), ('6/17/1974', 'Birth date'), ('Compliant', 'Status'), ('White', 'Race'), ('Male', 'Gender'), ('38', 'Age'), ('6′ 0″ (1.83 m)', 'Height'), ('190 lb (86 kg)', 'Weight'), ('Green', 'Eyes'), ('Brown', 'Hair'), ('639 COUNTY HWY 55', 'Address'), ('BLOUNTSVILLE', 'City'), ('Alabama', 'State'), ('35031', 'Zip'), ('No', 'Address is Temporary'), ('3/02/2012', 'Address Last Verified'), ('6/16/2009', 'Registration Date'), ('N/A', 'Scars / Marks / Tattoos'), ('N/A', 'Aliases'), ('19971220', 'Released'), ('39965930', 'Mugshots.com ID'), ('3/12/1954', 'Birth date'), ('Compliant', 'Status'), ('White', 'Race'), ('Male', 'Gender'), ('58', 'Age'), ('6′ 0″ (1.83 m)', 'Height'), ('170 lb (77 kg)', 'Weight'), ('Hazel', 'Eyes'), ('Brown', 'Hair'), ('203 YOUNG ROAD', 'Address'), ('REMLAP', 'City'), ('Alabama', 'State'), ('35133', 'Zip'), ('No', 'Address is Temporary'), ('3/26/2012', 'Address Last Verified'), ('5/07/2002', 'Registration Date'), ('N/A', 'Aliases'), ('20000804', 'Released')]

И я хотел бы иметь возможность создать CSV-файл с заголовком второго значения кортежа и первых значений в качестве значений, принадлежащихзаголовок и «нет», если для этой строки нет значения.

items = []

curr_dict = None

for key in rest.keys():
    new_key = rest[key]
    new_value = key if key else 'None'

    if new_key == 'url':
        curr_dict = {}
        items.append(curr_dict)

    curr_dict[new_key] = new_value

df = pd.DataFrame(items).fillna('None')
df.to_csv("file.csv", index = False)

Я пробовал код выше, но я не могу вписать a в код без потери данных (из-заудвоить значения в dict) или получить ошибку NoneType для curr_dict[new_key] = new_value

1 Ответ

1 голос
/ 21 ноября 2019

Вы можете сделать следующее:

t = [('39965983', 'Mugshots.com ID'), ('11/07/1974', 'Birth date'), ('Compliant', 'Status'), ('White', 'Race'), ('Male', 'Gender'), ('38', 'Age'), ('5′ 9″ (1.75 m)', 'Height'), ('245 lb (111 kg)', 'Weight'), ('Brown', 'Eyes'), ('Brown', 'Hair'), ('521 OLD HIGHWAY 75', 'Address'), ('ONEONTA', 'City'), ('Alabama', 'State'), ('35121', 'Zip'), ('No', 'Address is Temporary'), ('5/29/2012', 'Address Last Verified'), ('5/26/2006', 'Registration Date'), ('N/A', 'Scars / Marks / Tattoos'), ('20040921', 'Released'), ('39965553', 'Mugshots.com ID'), ('11/09/1961', 'Birth date'), ('Compliant', 'Status'), ('Black', 'Race'), ('Male', 'Gender'), ('51', 'Age'), ('6′ 0″ (1.83 m)', 'Height'), ('220 lb (100 kg)', 'Weight'), ('Brown', 'Eyes'), ('Black', 'Hair'), ('314 DENSON RD', 'Address'), ('HAYDEN', 'City'), ('Alabama', 'State'), ('35079', 'Zip'), ('No', 'Address is Temporary'), ('5/15/2012', 'Address Last Verified'), ('11/09/2007', 'Registration Date'), ('N/A', 'Scars / Marks / Tattoos'), ('N/A', 'Aliases'), ('20050411', 'Released'), ('39965949', 'Mugshots.com ID'), ('6/17/1974', 'Birth date'), ('Compliant', 'Status'), ('White', 'Race'), ('Male', 'Gender'), ('38', 'Age'), ('6′ 0″ (1.83 m)', 'Height'), ('190 lb (86 kg)', 'Weight'), ('Green', 'Eyes'), ('Brown', 'Hair'), ('639 COUNTY HWY 55', 'Address'), ('BLOUNTSVILLE', 'City'), ('Alabama', 'State'), ('35031', 'Zip'), ('No', 'Address is Temporary'), ('3/02/2012', 'Address Last Verified'), ('6/16/2009', 'Registration Date'), ('N/A', 'Scars / Marks / Tattoos'), ('N/A', 'Aliases'), ('19971220', 'Released'), ('39965930', 'Mugshots.com ID'), ('3/12/1954', 'Birth date'), ('Compliant', 'Status'), ('White', 'Race'), ('Male', 'Gender'), ('58', 'Age'), ('6′ 0″ (1.83 m)', 'Height'), ('170 lb (77 kg)', 'Weight'), ('Hazel', 'Eyes'), ('Brown', 'Hair'), ('203 YOUNG ROAD', 'Address'), ('REMLAP', 'City'), ('Alabama', 'State'), ('35133', 'Zip'), ('No', 'Address is Temporary'), ('3/26/2012', 'Address Last Verified'), ('5/07/2002', 'Registration Date'), ('N/A', 'Aliases'), ('20000804', 'Released')]

d = {x[0]: {} for x in t if x[1] == 'Mugshots.com ID'}

for x in t:
    if x[1] == 'Mugshots.com ID':
        curr_id = x[0]
    else:
        d[curr_id][x[1]] = x[0]

df = pd.DataFrame(d).fillna('None').transpose()
df.to_csv("file.csv")

, что дает следующий вывод:

>>> df
          Birth date     Status  ...  Released Aliases
39965983  11/07/1974  Compliant  ...  20040921     N/A
39965553  11/09/1961  Compliant  ...  20050411     N/A
39965949   6/17/1974  Compliant  ...  19971220     N/A
39965930   3/12/1954  Compliant  ...  20000804     N/A

[4 rows x 19 columns]

И в .csv:

enter image description here

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