python - 使用 numpy 初始化系列对象?
问题描述
当我从熊猫开始并试图了解如何使用给定的数组或列表创建系列时,我遇到了这一行......
如果您在 NumPy 的帮助下初始化一个系列对象,那么您只能在其中保存同质数据。
我无法理解它在说什么!我猜系列可以容纳任何 dtype,只要它在整个特定向量中都是相同的,不是吗?那么上面的行在这种情况下是什么意思呢?
这是在此语句之前编写的代码......
import numpy as np
import pandas as pd
labels = ['a','b','c']
my_data = [10,20,30]
arr = np.array(my_data)
print(pd.Series(my_data))
print('==================')
print(pd.Series(my_data,index=labels))
解决方案
In [550]: labels = ['a','b','c']
...: my_data = [10,20,30]
...: arr = np.array(my_data)
In [551]: arr
Out[551]: array([10, 20, 30]) # array with `int` dtype
In [553]: pd.Series(my_data)
Out[553]:
0 10
1 20
2 30
dtype: int64
In [554]: pd.Series(my_data, index=labels)
Out[554]:
a 10
b 20
c 30
dtype: int64
注意dtype
.
包含 int 和字符串的列表:
In [555]: alist = [10,'twenty',30]
In [556]: pd.Series(alist, index=labels)
Out[556]:
a 10
b twenty
c 30
dtype: object
注意 dtype 的变化
从该列表中创建数组 - 注意字符串 dtype:
In [557]: np.array(alist)
Out[557]: array(['10', 'twenty', '30'], dtype='<U21')
In [558]: pd.Series(np.array(alist), index=labels)
Out[558]:
a 10
b twenty
c 30
dtype: object
In [559]: _.to_numpy()
Out[559]: array(['10', 'twenty', '30'], dtype=object)
[558] 看起来与 [556] 相同,但它们10,20
是不同的——一个是整数,另一个是字符串。无论好坏,pandas 显示的字符串和数字都是一样的。
推荐阅读
- python - 启动 VSCode 时自动激活 conda 环境
- python - 如何过滤数据库表行并更新 django 中的特定列?
- javascript - Bootstrap4:卡片标题和导航在一行
- asp.net-core - ASP.Net Core - Toast 通知未显示在已部署的应用程序上
- java - 是否可以使用 Citrus-Framwork 将 http-response 的内容类型作为字符串获取?
- c# - LinkButtons 在图标周围的可点击区域表现不同(我不认为这是前端问题)
- python - 将 Numpy 数组转换为视频(mp4)
- javascript - Html2Canvas 和 Canvas2Image 在页面上不起作用
- angular - 未创建会话:Chrome 版本必须介于 71 和 75 之间 - 在 Concourse 中运行 angular e2e
- php - 使用 Slim/PHP/Twig 进行访问控制