Pandas入门——数据类型

1、Series

dtype

Pandas 用 object 存储字符串,当对象单列中含多种类型的数据时,该列的数据类型通常为 object。

s = pd.Series([1, 3, 'a', 'foo', 'True'], index=['b', 'c', 'a', 'd', 'e'])
print(s.dtype)
object

当与其他类型合并时,会强制向上转型,如从int变为float。

s1 = pd.Series([1, 3, 2, 5, 9.0], index=['b', 'c', 'a', 'd', 'e'])
b    1.0
c    3.0
a    2.0
d    5.0
e    9.0
dtype: float64

astype()

s = pd.Series([1, 3, 2, 5, 9.0], index=['b', 'c', 'a', 'd', 'e'])
print(s.astype('float32'))
b    1.0
c    3.0
a    2.0
d    5.0
e    9.0
dtype: float32
float64

2、DataFrame

dtypes

DataFrame 的dtypes 属性用起来很方便,以 Series 形式返回每列的数据类型。

dft = pd.DataFrame({'A': np.random.rand(3),
                    'B': 1,
                    'C': 'foo',
                    'D': pd.Timestamp('20010102'),
                    'E': pd.Series([1.0] * 3).astype('float32'),
                    'F': False,
                    'G': pd.Series([1] * 3, dtype='int8')})
print(dft.dtypes)
          A  B    C          D    E      F  G
0  0.336347  1  foo 2001-01-02  1.0  False  1
1  0.664647  1  foo 2001-01-02  1.0  False  1
2  0.450123  1  foo 2001-01-02  1.0  False  1

A           float64
B             int64
C            object
D    datetime64[ns]
E           float32
F              bool
G              int8
dtype: object

astype() 

dft[['A', 'B']] = dft[['A', 'B']].astype('float64')
print(dft.dtypes)
A           float64
B           float64
C            object
D    datetime64[ns]
E           float32
F              bool
G              int8
dtype: object

还可以通过字典指定哪些列转换为哪些数据类型,astype()默认操作为复制数据,就算数据类型没有改变也会复制数据,因此不改变数据类型的列会被保留。但如果先选中列再改变数据类型,则返回的结果只有选中的列。

dft1 = dft[['A', 'B']].astype('float64')
dft2 = dft.astype({'A': 'bool', 'B': 'float64'})
A    float64
B    float64
dtype: object

A              bool
B           float64
C            object
D    datetime64[ns]
E           float32
F              bool
G              int8
dtype: object

to_numpy().dtype

 返回多个数据类型中用的最多的数据类型。

dtypes.value_counts()

统计DataFrame中不同数据类型的列数。

print(dft.dtypes.value_counts())
float64           1
int64             1
object            1
datetime64[ns]    1
float32           1
bool              1
int8              1
dtype: int64

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值