python数据处理小结
2017-12-18 本文已影响167人
Crystalajj
Python Tutoriol Chinese Version
想要数据类型之间的转换,首先要知道数据是什么类型,可以用type(your_data)
或者isinstance(your_data,data_type_you_think)
来判断。具体
读txt文件
txt文件往往不便于数据分析,可以用pandas
的read_csv()
模式读取。
NOTE:
- 如果txt文件是以'
,
'分割(comma-separated)的可以直接读取,不用改参数。如果不是,可以用sep
制定分隔符(delimiter)。如果分隔符是空格,还可以用将delim_whitespace
置为True
来实现读取。 - 如果数据文件中没有列标题行/不想加载出列标题行,需要执行
header=None
参考read_csv()的配置文件
配置文件中文版
f = pd.read_csv('/your_path/your_filename.txt', delim_whitespace = True)
加载CSV文件的两种方式
- 使用python的csv模块
- 使用python的numpy库
存为csv文件
可以用to_csv()
实现csv文件的转换。
如果想把刚才生成的f存为csv,(默认的分隔符是comma),那么可以如下操作:
f.to_csv('/your_path/your_filename.csv')
将csv文件读取为数组
数组更方便于数据处理,可以用numpy将csv文件整体读取为一个数组或者矩阵。
numpy,pandas对csv文件进行写操作
my_matrix = numpy.loadtxt(open('/your_path/your_filename.csv','rb'))
简介:
loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)
- fname 要读取的文件、文件名、或生成器。
- dtype 数据类型,默认float。
- comments 注释。
- delimiter 分隔符,默认是空格。
- skiprows 跳过前几行读取,默认是0,必须是int整型。
- usecols 要读取哪些列,0是第一列。例如,usecols = (1,4,5)将提取第2,第5和第6列。默认读取所有列。
- unpack如果为True,将分列读取。
loadtxt()参数配置
Note:
- csv文件读取错误解决办法集(日文)
- 如果数据不整齐,可以尝试
np.genfromtxt
各种数据类型的转换
获取Series类型值(value)的索引(index)
your_Series[your_Series.values==True/you_want].index
获得多个索引的话可以加上.tolist()
得到list
类型。
stack overflow上是这么用的,但是在我这里行不通
df.index[df[values==True]].tolist()
获取DataFrame类型值(value)的索引(index)
# create DataFrame
# {}内是值,可以多列,index后是索引
df = pd.DataFrame({'values1':[1,2,3],'values2':[3,4,5]}, index = [1,2,3])
#找到values1=1 & values2=3的索引
a = df[(df.values1==1)&(df.values2==3)].index.tolist()
results
数据整合
有时候需要把很多条数据添加到一个list或者dataframe的数据中进行整合。
- list
使用append()函数
list.append()
- dataframe
使用pandas的concat函数
your_dataframe_data = pandas.concat([your_dataframe_data,add_data],ignore_index=True)
持续更新...