读取原始数据的时候,经常会遇到字符型变量读入变成了数值型,比较定性的就是商户ID,银行卡号这类标识型数据,
可以使用三种方法解决这个问题:
第一种:在读取数据的时候,指定数据类型
data = pd.read_csv('test.txt',sep = '|',dtype = 'str')
上面说的是,
1,读取工作文件路径中标题为test.txt的文件,
2,采用的分割符是’|’分隔符
3,所有的列读取的数据类型为字符串类型
第二种:使用转换函数:
2.1:将所有数据转换为字符串
dataframe=dataframe.astype(str)
2.2:将某列转换为字符串
data = data.astype({'outcome':'float','age':'int'})
上面代码说的是:
1,对data这个df进行某列的数据类型转换
2,将outcome这列转换为 float类型
3,将age这列转换为int类型
第三种:使用dataframe的apply函数或者map函数
data['交易金额'] = data.交易金额.map(lambda x:float(x))
上面代码说的是:
1,对data这个df进行map操作
2,构造lambda函数,返回的是float(x)
3,将返回的值赋值给data的’交易金额’列
Python
保险客户办理
数据
集csv 将其中的json
字符串
转换为
dataframe
格式化处理 case_id,event,timestamp,payload,aggregate_type
125044,claim,2020-09-06 00:
01
:00.277,"{'person': {'relation': 'self'}, 'incident': {'incident_scene': 'work', 'date_of_incident': '2
01
8-02-05', 'time_of_incident': '10:30:00'}, 'occupation': {'occupation': 'employee'}}",case
case_id,event,timestamp,payload,aggregate_type
125044,connected_to_customer,2021-02-18 19:51:09.219,{'customerId': 'ec40fad4-bc74-4774-8a2c-ba92c57191b4' numpy pandas
数据
分析
数据
挖掘
在
数据
分析的过程中,通常为了进行一些操作需要将pandas.
Dataframe
的
数据
类型
转为字典(dict)、元组(tuple)、二维数组(numpy.ndarray)进行后续的操作。本文总结了
数据
分析过程中常用的
Dataframe
的几种转换形式,并给出了相应的代码,便于读者在
数据
分析中能够快速的对
数据
进行处理与分析。
数据
类型转换
:
今天遇到一个问题,就是
DataFrame
类型
的
数据
里是
str
型的数字,想把数字转换为int 或float;百度没有发现好的,也可能输入的关键字不对,找不到;
DataFrame
.info()之后发现
数据
全是object
之前有一个方法就是:
先traindata=np.array(traindata,dtype=np.float)之后在
traindata=pd.
DataFrame
(traindata)转换
但看着很繁琐,突发奇想,试到了下面的方法,一句就搞定得意得意
traindata=pd.
DataFrame
(traindata,dtype=np.float);里面的fl
str
ptime函数,datetime.
str
ptime(value,’%Y/%M/%D’)
str
ftime函数,datetime.
str
ftime(‘%Y/%M/%D’)
注意使用datetime包中后面的
字符串
匹配需要和原
字符串
的格式相同,才能转义过来,相当于yyyy-mm-dd格式的需要按照’%Y-%M-%D’来实
# -*- coding: UTF-8 -*-
import pandas as pd
df = pd.
DataFrame
([{'col1':'a', 'col2':'1'}, {'col1':'b', 'col2':'2'}])
print df.dtypes
df['col2'] = df['col2'].astype('int')
print '-----------'
print df.dtypes
df['col2'] = df['col2'].astype('float64')
print '-----------'
print
结果运行好几个小时都没出结果(崩溃),然后询问大佬,可以反过来将编号不为0的行全部存到一个表里,再赋值给原表: df = df[df['编号']!刚开始用的:df.drop(df[df['编号']=='0'].index,inplace=True) #找到编号为0的行并从表中删除。将编号这一列的
数据
改成
str
类型
:datafile_df['编码'].astype('
str
')2、因为读取的表比较大(几亿行
数据
),条件筛选的时候想删除某些行。1、将
dataframe
的某一列的
类型转换
成
str
。
(3条消息)pandas中的
DataFrame
按指定顺序输出所有列 - quintind的专栏 - CSDN博客
https://blog.csdn.net/quintind/article/details/79691574
(1)创建
数据
框:
import pandas as pd
grades = [48,99,75,80,42,80,72,68,36,78]
df = p...
datetime64[ns] 这应该是numpy中的一种时间
数据
类型
str
字符
类型
object 一种通用的
数据
类型
,在没有明确指定
类型
下,所有
数据
都可认为是object
类型
bool_ Boolean (True or False) stored as a byte
int_ Default integer type (same as C long; normally either in
str
ftime从date
类型转换
成
字符串
类型
data中date列(sysdate)提取其中的年月日信息到新的列(date_key)
data['date_key'] = data.sysdate.map(lambda x: x.
str
ftime('%Y-%m-%d'))
将
字符串
列转换成date列
1、pd.to_datetime
data['date_key'] = pd.to_datetime(data['date_key'])
2、
str
ptime
data['date_key'] = dat