pandas.DataFrame входной DataFrame, но получить NaN? - PullRequest
0 голосов
/ 12 ноября 2018

df - оригинальный DataFrame, CSV-файл.

a = df.head(3)                  # get part of df.

Это таблица а.

enter image description here

b = a.loc[1:3,'22':'41']        #select part of a.

c = pd.DataFrame(data=b,index=['a','b'],columns=['v','g']) # give index and columns

окончательный

б показать 2х2. Я получаю четыре значения.

c показать 2x2 NaN. Я получаю четыре NaN.

почему не может содержать число?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Ваш DataFrame b уже содержит индексы строк и столбцов, поэтому, когда вы пытаетесь создать DataFrame c и передаете аргументы ключевых слов index и columns, вы неявно индексируете исходный DataFrame b.

Если все, что вы хотите сделать, это переиндексировать b, почему бы не сделать это напрямую?

b = b.copy()
b.index = ['a', 'b']
b.columns = ['v', 'g']
0 голосов
/ 13 ноября 2018

Попробуйте использовать .values, вы сталкиваетесь с «внутренним выравниванием данных»

c = pd.DataFrame(data=b.values,index=['a','b'],columns=['v','g']) # give index and columns

Пандам нравится выравнивать индексы, конвертируя ваш b-кадр данных в массив np.ar, вы можете затем использоватьконструктор pandas dataframe для создания нового кадра данных с этими значениями 2x2, назначающими новую индексацию.

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