这里是DataSet的前5行:
我正在尝试将DataSet的'BirthRate'和'InternetUsers'列的行相乘。但我不明白为什么当我使用result1和result2中的方法时它工作正常,但当我使用result3的方法时,所有结果都变为'NaN'值。我也试过运行“dataSet [['BirthRate']]。head()”和“dataSet [['InternetUsers']]。head()”分开,但它们给出了正确的结果。但是为什么它们的乘法会给出“NaN”值!
答案 0 :(得分:1)
第一个和第二个方法多个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
<强>详细强>:
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