python-3.x - 2列的乘法结果因访问方法不同而不同
问题描述
这是 DataSet 的前 5 行:
我正在尝试将 DataSet 的“BirthRate”和“InternetUsers”列的行相乘。但我不明白为什么当我使用 result1 和 result2 中的方法时它工作正常,但是当我使用 result3 的方法时,所有结果都变成“NaN”值。我也尝试过分别运行“dataSet[['BirthRate']].head()”和“dataSet[['InternetUsers']].head()”,但它们给出了正确的结果。但是为什么它们的乘法会给出“NaN”值!
解决方案
第一种和第二种方法是乘以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
推荐阅读
- angular-material - 响应即将到来,但请求 api 调用未在 angular9 的网络面板中触发
- python - 如何获取图像中的分割数
- python-3.x - ModuleNotFoundError:运行由 PyInstaller 编译的 Mac OS 应用程序时没有名为“cmath”的模块:PyTesseract 出现问题
- javascript - 需要帮助创建包含信息的缓冲区
- javascript - JS/NodeJS WebSockets:尝试通过 https:// 连接 ws:// 时出现“混合内容”错误
- javascript - 在脚本中使用替代文本
- scala - scalafx 和 TableView:如何更改 slectionModel 和 focusModel?
- sql - 与本地 dockerized 的 postgres 连接
- ios - Smooch - 消息传递失败
- vba - PrintOut 设置为 3,但仅生成 1 个副本