Словари в Pandas столбцах Dataframe в CSV - PullRequest
0 голосов
/ 11 июля 2020

У меня есть CSV, в котором есть столбец под названием «расположение» словарей, например:

{"city": "Bellevue", "country": "United States", "address2": "Ste 2A - 178", "state": "WA", "postal_code": "98005", "address1": "677 120th Ave NE"}

{"city": "Atlanto", "country": "United States", "address2": "Ste A-200", "state": "GA", "postal_code": "30319", "address1": "4062 Peachtree Rd NE"}

{"city": "Suffield", "state": "CT", "postal_code": "06078", "country": "United States"}

{"city": "Nashville", "state": "TN", "country": "United States", "postal_code": "37219", "address1": "424 Church St"}

Я хочу прочитать CSV в фрейм данных, а затем проанализировать город, штат , улица, почтовый индекс, страна в отдельные столбцы.

У кого-нибудь есть идеи?

1 Ответ

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

Загрузите столбец в список и создайте новый фрейм данных.

Например:

import pandas as pd

column = [{"city": "Bellevue", "country": "United States", "address2": "Ste 2A - 178", "state": "WA", "postal_code": "98005", "address1": "677 120th Ave NE"},
          {"city": "Atlanto", "country": "United States", "address2": "Ste A-200", "state": "GA", "postal_code": "30319", "address1": "4062 Peachtree Rd NE"},
          {"city": "Suffield", "state": "CT", "postal_code": "06078", "country": "United States"},
          {"city": "Nashville", "state": "TN", "country": "United States", "postal_code": "37219", "address1": "424 Church St"}]


df = pd.DataFrame(column)
print(df)

Печать:

        city        country      address2 state postal_code              address1
0   Bellevue  United States  Ste 2A - 178    WA       98005      677 120th Ave NE
1    Atlanto  United States     Ste A-200    GA       30319  4062 Peachtree Rd NE
2   Suffield  United States           NaN    CT       06078                   NaN
3  Nashville  United States           NaN    TN       37219         424 Church St

РЕДАКТИРОВАТЬ: Для чтения из файла csv вы можете использовать этот пример:

import csv
import pandas as pd
from ast import literal_eval

data = []
with open('data.csv', 'r', newline='') as f_in:
    csv_reader = csv.reader(f_in, delimiter=',', quotechar='"')
    for row in csv_reader:
        data.append(literal_eval(row[0]))  # <-- here i use [0], beacuse the dictionary is in column 0

df = pd.DataFrame(data)
print(df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...