Первый и второй подход кратны 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