Почему этот код Python спасает меня от таких сложных данных? - PullRequest
0 голосов
/ 02 марта 2019

Я работаю с json-файлом из 146 000 строк, мне нужно построить несколько столбцов этой информации.Это действительно занимает много времени, сохраняя все это в dataframe сразу, поэтому я начал работать с read_csv, назначая размер фрагмента, как вы можете видеть в моем коде, потому что мне не нужны все столбцы, я создаюновый фрейм данных со столбцами, которые мне действительно нужны, а затем создание concat и сохранение в файл csv.Когда я запускаю свой код, он сохраняет меня не по порядку, вы можете видеть на рисунке, что первый раз работает отлично, а также знаете, что этот код будет повторять одну и ту же первую строку снова и снова, но почему показывается первый фрагмент какэтот??Пожалуйста, вы можете помочь?На данный момент любая идея является большой помощью!Спасибо!!

for i in pd.read_json('info_img_havana.json',chunksize=10,lines=True):
df=i.id.to_frame()
df2=json_normalize(i.dates)['taken'].to_frame()
df3=pd.concat([df,df2],axis=1)

после печати df3 дает мне следующее:

enter image description here

часть файла json

enter image description here

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

Правильно, проблема заключалась в том, что индекс Frame был непрерывным, поэтому, когда вы создаете новый DataFrame, он берет свой собственный индекс.Вы можете проверить это, добавив следующий код

df1 = pd.DataFrame({'index_chunk':i.index,'index_df':df.index})
print(df1)
0 голосов
/ 02 марта 2019

Готово !! Была проблема с индексом .. этот код работает:

for i in pd.read_json('info_img_havana.json', chunksize=10, lines=True):
    df = pd.DataFrame(dict(d=json_normalize(i.dates)['taken']))
    df.set_index(i.index,inplace=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...