Nested Dictionary Dataframe Error Форма переданных значений (13, 1), индексы подразумевают (13, 13) - PullRequest
0 голосов
/ 25 апреля 2020

Я работаю над вложенным словарем, и мне нужна помощь в создании фрейма данных.

Python Коды:

authorstats= props['authorStats']
follower = props['authorStats']['followerCount']
heartcount = props['authorStats']['heartCount']
AuthorID = props['itemInfos']['authorId']
Commentcount = props['itemInfos']['commentCount']
CreateTime = props['itemInfos']['createTime']
Diggcount = props['itemInfos']['diggCount']
ID = props['itemInfos']['id']
VideoPlaycount = props['itemInfos']['playCount']
VideoSharecount = props['itemInfos']['shareCount']
VideoText = props['itemInfos']['text']
MusicAuthorName = props['musicInfos']['authorName']
MusicID = props['musicInfos']['musicId']
Musicname = props['musicInfos']['musicName']
Meta = follower,heartcount,AuthorID,Commentcount,CreateTime,Diggcount,ID,VideoPlaycount,VideoSharecount,VideoText,MusicAuthorName,MusicID,Musicname
import pandas
print(pandas.DataFrame(Meta,columns=['NumberofFollowers','HeartCount','AuthorID','NumberofComments','Create Time','Diggcount','ID','Video Play Count','Video Share Count','Video Text','Music Author Name','Music ID','Music Name']))

Полученное сообщение об ошибке:

(2147278, '10899962', '84453035275386880', 300, '1587111974', 14089, '6816594007829859589', 91036, 29, 'I’m that friend who can’t stand still when taking photos', 'Alan Walker, Ruben', '6805465027164768258', 'Heading Home')

    File "C:/Users/abcd/PycharmProjects/Selinium/Lets start working", line 62, in <module>
        print(pandas.DataFrame(Meta,columns=['NumberofFollowers','HeartCount','AuthorID','NumberofComments','Create Time','Diggcount','ID','Video Play Count','Video Share Count','Video Text','Music Author Name','Music ID','Music Name']))
      File "C:\Users\abcd\PycharmProjects\Selinium\venv\lib\site-packages\pandas\core\frame.py", line 488, in __init__
        mgr = init_ndarray(data, index, columns, dtype=dtype, copy=copy)
      File "C:\Users\k.bengi\PycharmProjects\Selinium\venv\lib\site-packages\pandas\core\internals\construction.py", line 210, in init_ndarray
        return create_block_manager_from_blocks(block_values, [columns, index])
      File "C:\Users\abcd\PycharmProjects\Selinium\venv\lib\site-packages\pandas\core\internals\managers.py", line 1664, in create_block_manager_from_blocks
        construction_error(tot_items, blocks[0].shape[1:], axes, e)
      File "C:\Users\abcd\PycharmProjects\Selinium\venv\lib\site-packages\pandas\core\internals\managers.py", line 1694, in construction_error
        raise ValueError(f"Shape of passed values is {passed}, indices imply {implied}")
    ValueError: Shape of passed values is (13, 1), indices imply (13, 13)`

Ожидаемый вывод - это таблица, в которой есть столбцы, такие как NumberofFollowers, HeartCount ',' AuthorID 'с информацией, которую вы видите в первой строке ошибки, например, 2147278 - это число подписчиков,' 10899962 '- это HeartCount,' 84453035275386880 '- это идентификатор автора ...)

Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 25 апреля 2020

Преобразование словарей столбцов в DataFrames и запуск следующего:

df = pandas.concat([follower,heartcount,AuthorID,Commentcount,CreateTime,Diggcount,ID,VideoPlaycount,VideoSharecount,VideoText,MusicAuthorName,MusicID,Musicname])

должны правильно создать DataFrame, только столбцы должны быть переименованы:

df.columns=['NumberofFollowers','HeartCount','AuthorID','NumberofComments','Create Time','Diggcount','ID','Video Play Count','Video Share Count','Video Text','Music Author Name','Music ID','Music Name']
...