pandas是python中强大的数据处理包,能够进行各式各样的数据处理工作。
pandas.DataFrame
pandas对数据的封装格式。
新建dataframe
示例:
import pandas as pd
a=[['1','2','3'], ['a','b','c']]
data=pd.DataFrame(a, columns=['aa','bb','cc'])
data格式(最左侧0,1为行索引号,最上方aa,bb,cc为列名):
daraframe常用域
- data.columns:获取所有列名;
- data.iloc[‘列名’]:根据列名,获取某列数据;
- data.iloc[i,j]:根据行列索引,获取指定位置数据;
- data.values:以行为单位,返回dataframe所有数据;
- data.value[i,j]:根据行列索引,获取指定位置数据。
pandas读取保存文件
保存文件
DataFrame.to_csv函数,主要参数:
import pandas as pd
df.to_csv(path_or_buf="filename.csv" ,
sep=' ',
columns=None,
header=True,
index=True)
- sep:通常是保存txt文件所用的分隔符,会将 同一行 不同列 数据按sep指定的符号分隔开。
- header:默认为True,保存列索引(列名),即上图最上方的列名,保存的文件会多出一行数据。
- index:默认为True,保存行索引,即上图中的最左侧0,1,保存的文件中会多出一列数据,变为3列。
读取文件
DataFrame.read_csv函数,主要参数:
import pandas as pd
pd.read_csv(filename,
header="infer",
names=None,
nrows=None,
usecols=None,
index_col=None,
skiprows=None )
- header:用来选择哪一行作为列索引。可以填一个整数,填0表示第1行作为列索引,填5表示第6行作为列索引。填None表示默认不选任何行做为列索引,而是自动生成一个从0开始的列索引。
- names:当 header=None 是,可以通过设置这个参数来自定义列索引。
pandas.concat
功能:按照指定axis,合并两个DataFrame。
import pandas as pd
pd.concat([data_1, data_2], axis=0)
pd.concat([data_1, data_2], axis=1)
pandas.merge
功能:求两个DataFrame的交 / 并 / 补集,类似SQL中的内连接、外连接等操作。
import pandas as pd
dataframe_3 = pd.merge(dataframe_1, dataframe_2, how='inner')
参考链接:[Python3]pandas.merge用法详解
pandas将dataframe的多列合并为一列
pandas.Series.str.cat方法,不过cat方法只能处理str类型,所以应提前将非str列数据转化为str类型(.map(str)操作),再进行合并。
data['date'] = data["year"].map(str).str.cat([data["month"].map(str), data['day'].map(str)], sep='-')
参考链接:dataframe多列合并成一列
|