Результат умножения на 2 столбца отличается для разных методов доступа - PullRequest
0 голосов
/ 02 мая 2018

Здесь первые 5 строк набора данных:

First 5 Rows of the DataFrame

Я пытаюсь умножить строки столбцов «BirthRate» и «InternetUsers» в DataSet. Но я не понимаю, почему, когда я использую методы в result1 и result2, он работает нормально, но когда я использую метод result3, весь результат становится значением 'NaN'. Я также попытался запустить «dataSet [['BirthRate']]. Head ()» и «dataSet [['InternetUsers']]. Head ()» по отдельности, но они дают правильные результаты. Но почему их умножение дает значение "NaN"!

Picture of result1 and result2 and result3 Code

1 Ответ

0 голосов
/ 02 мая 2018

Первый и второй подход кратны Series, в последнем кратном один столбец DataFrame, поэтому для выравнивания необходимо использовать одинаковые имена столбцов, иначе получите NaN s:

dataset = pd.DataFrame({'A':list('abcdef'),
                        'B':[4,5,4,5,5,4],
                        'BirthRate':[7,8,9,4,2,3],
                        'InternetUsers':[1,3,5,7,1,0]})

print (type(dataset['BirthRate']))
<class 'pandas.core.series.Series'>

print (type(dataset[['BirthRate']]))
<class 'pandas.core.frame.DataFrame'>

print (dataset[['BirthRate']] * dataset[['InternetUsers']]
                                       .rename(columns={'InternetUsers':'BirthRate'}))

   BirthRate
0          7
1         24
2         45
3         28
4          2
5          0

Detail :

print (dataset[['BirthRate']])
   BirthRate
0          7
1          8
2          9
3          4
4          2
5          3

print(dataset[['InternetUsers']].rename(columns={'InternetUsers':'BirthRate'}))
   BirthRate
0          1
1          3
2          5
3          7
4          1
5          0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...