date类型转换为string类型_数据类型几种常见的转换方式

df转换为dict
# Orient str {'dict','list','series','split','records,'index'}
# 确定字典值的类型。
# 'dict'(默认):像{column-> {index-> value}}这样的dict
# 'list':类似{column-> [values]}的字典
# 'series':类似{column-> Series(values)}的字典
# 'split':类似{'index'-> [index],'columns'-> [columns],'data'-> [values]}的字典
# 'records':类似于[{column-> value},…,{column-> value}]的列表
# 'index':类似{index-> {column-> value}}的字典
# 允许缩写。s表示序列,而sp 表示split。

data = {'玩具':['车','飞机','轮船'], '数量':[3,2,5], '价格':[100,90,80]} 
df = DataFrame(data)

print(df.to_dict())
print('-'*30)
print(df.to_dict(orient='records'))
{'玩具': {0: '车', 1: '飞机', 2: '轮船'}, '数量': {0: 3, 1: 2, 2: 5}, '价格': {0: 100, 1: 90, 2: 80}}
------------------------------
[{'玩具': '车', '数量': 3, '价格': 100}, {'玩具': '飞机', '数量': 2, '价格': 90}, {'玩具': '轮船', '数量': 5, '价格': 80}]
ndarray多维数组的数据类型转换
# 将ndarray多维数组转化为字符串类型
import numpy as np
arr = np.arange(6)
arr
array([0, 1, 2, 3, 4, 5])
arr.dtype
dtype('int64')
# 转化为 string 类型
str_arr = arr.astype('string_')
str_arr
array([b'0', b'1', b'2', b'3', b'4', b'5'], dtype='|S21')
# 转化为 float 类型
str_arr = arr.astype(np.float)
str_arr
array([0., 1., 2., 3., 4., 5.])
str_arr.dtype
dtype('float64')
时间格式样式转换
import pandas as pd
# df = pd.DataFrame([pd.date_range('2019/01/01', periods=10), np.arange(10)])

df = pd.DataFrame(pd.date_range('2019/01/01',periods=5), columns=['time'])
df = df.set_index(df['time'])
df

f7cd909d0f609748698bffb4b8e8a182.png

df.index = df.index.strftime('%b %d %Y %H:%M:%S')
df

ba15acca7d95a49b175ea57b21f52f0c.png

使用pd.to_datetime() 将字符串数据转化为datetime数据类型
# 将字符串转换成Datetime类型,用此方法也可以将df中的某一列(如果同样是字符串类型)转换
datetime_eg = pd.to_datetime(['2018-8-1', '2018-8-2'])
datetime_eg
DatetimeIndex(['2018-08-01', '2018-08-02'], dtype='datetime64[ns]', freq=None)
使用reset_index()将series转换为dataframe数据
df = pd.DataFrame({
    'A':[1,22,3],
    'sex': ['male', 'famle', 'male']
})
df

1612f713ca06959c01109171f97593e8.png

group = df.groupby('sex')['A'].count()
group
sex
famle    1
male     2
Name: A, dtype: int64
group = df.groupby('sex')['A'].count().reset_index()
group

5cc1ec9bfdb1548915e1ce3bd31e940f.png

category类型转换成int类型(或者其他类型)
df = pd.DataFrame({
    'A': np.arange(20,30)
})
df['level'] = pd.cut(df['A'], bins=[10,20,25,30], labels=[100, 200, 300]) 
df.dtypes
A           int64
level    category
dtype: object
# 将某一列转换为int类型
df['level'] = df['level'].astype(np.int32)
df.dtypes
A        int64
level    int32
dtype: object
将布尔类型转换为数值(int类型、float类型)
# 将布尔类型转换为数值
data = {'玩具':['车','飞机','轮船'], '数量':[3,2,5], '价格':[100,90,80]} 
df = DataFrame(data)
df.isin({'数量':[2,5]})

45717ffa4ba919385c96806171f7f477.png

df.isin({'数量':[2,5]}) *1

cd58553e1e8f987be810e324f05b42d3.png

bbff03d265908abb0616e0c1faed944b.png

11ca5a4159ed4d21067c62a2abc76636.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值