Saya memiliki kumpulan data yang mengembalikan beberapa baris dalam satu kolom seperti ini:

{'billingaddresscountry':'Brasil','ip':'187.78.30.72','billingcpf':'001.022.614-61','billingphoneddi':'55','billingphoneddd':'81','billingphonenumber':'8815-2111','date':'2012-07-10T01:05:59.6177731-03:00'}

DAN seperti ini

{'billingcpf':'324.625.318-43','billingphoneddi':'55','billingphoneddd':'11','billingphonenumber':'989523447','billingaddresscountry':'Brasil','paymentaddresscountry':'Brasil'}

EDIT: Saya memiliki ribuan baris dalam kumpulan data saya yang terlihat mirip dengan ini. Mereka semua memiliki jumlah kunci yang berbeda dalam kamus. Bagaimana saya bisa meletakkannya di dalam kerangka data dengan nama kolom sebagai kunci dan baris sebagai nilai.

Adakah yang bisa membantu?

0
caiolasagno' 4 Juli 2020, 23:51

1 menjawab

Jawaban Terbaik

Saya pikir Anda melewatkan solusi yang sangat mudah ini?

import pandas as pd

data = [
    {'billingaddresscountry': 'Brasil', 'ip': '187.78.30.72', 'billingcpf': '001.022.614-61', 'billingphoneddi': '55',
     'billingphoneddd': '81', 'billingphonenumber': '8815-2111', 'date': '2012-07-10T01:05:59.6177731-03:00'},
    {'billingcpf': '324.625.318-43', 'billingphoneddi': '55', 'billingphoneddd': '11',
     'billingphonenumber': '989523447', 'billingaddresscountry': 'Brasil', 'paymentaddresscountry': 'Brasil'}
]

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

Untuk memberi Anda gambaran yang lebih baik tentang hasilnya:

import pandas as pd

data = [
    {'a': 1, 'b': 2, 'c': 3},
    # different order
    {'b': 4, 'a': 5, 'c': 6},
    # missing values
    {'b': 7, 'c': 8},
    # new columns introduced later
    {'a': 9, 'd': 10},
]

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

Hasil:

     a    b    c     d
0  1.0  2.0  3.0   NaN
1  5.0  4.0  6.0   NaN
2  NaN  7.0  8.0   NaN
3  9.0  NaN  NaN  10.0

Anda mengindikasikan bahwa Anda tidak ingin menambahkan semua baris sekaligus, karena volume:

df = df.append([{'a': 11, 'e': 12}])
print(df)

Hasil:

      a    b    c     d     e
0   1.0  2.0  3.0   NaN   NaN
1   5.0  4.0  6.0   NaN   NaN
2   NaN  7.0  8.0   NaN   NaN
3   9.0  NaN  NaN  10.0   NaN
0  11.0  NaN  NaN   NaN  12.0
0
Grismar 4 Juli 2020, 21:39