Почему Pandas не позволяет мне использовать список для добавления строк без добавления []? - PullRequest
0 голосов
/ 02 ноября 2019

Я строю фрейм очищенных данных из текстового файла. Мой предполагаемый фрейм данных - это 11 столбцов и 2 строки (пока).

TestRow1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
columns_headers = [A, B, C, D, E, F, G, H, I, J, K]

Я думал, что это сработает:

new_df = pd.DataFrame(data =TestRow1, headers = columns_headers)

Это не так. Вместо этого вы получаете ошибку индексов:

error ValueError: Shape of passed values is (11, 1), indices imply (11, 11)

Однако, когда я передаю это:

NewDF = pd.DataFrame(data = [TestRow1], columns = columns_headers)

Это работает. Но почему? Если вы проверите тип 'TestRow1' и '[TestRow1]', вы обнаружите, что они оба:

<class 'list'>

Так что здесь происходит?

1 Ответ

0 голосов
/ 02 ноября 2019

Из документации

Фрейм данных

Двумерная изменяемая по размеру, потенциально неоднородная структура табличных данных

Таким образом, вам нужно либо передать двумерный массив с явными именами столбцов, либо передать словарь, как показано ниже

pd.DataFrame({'column_name': [1,2,3]})

1-й случай:

new_df = pd.DataFrame(data =TestRow1, headers = columns_headers)

Это нене работает, потому что нет именованного аргумента headers.

2-й случай:

NewDF = pd.DataFrame(data = [TestRow1], columns = columns_headers)

Это будет работать, потому что вы преобразовали данные в 2D-списокака. [[1,2,3]] а также вы предоставили columns с правильным именем аргумента.

PS:

Вы правы на данных list. Но следует сосредоточиться на форме списка.

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