python数据处理包——pandas

pandas是python中强大的数据处理包,能够进行各式各样的数据处理工作。

pandas.DataFrame

pandas对数据的封装格式。

新建dataframe

示例:

import pandas as pd
# 新建空 dataframe
data1 = pd.DataFrame()
a=[['1','2','3'], ['a','b','c']]
# 通过list来构建dataframe
data=pd.DataFrame(a, columns=['aa','bb','cc'])  # columns 列名

data格式(最左侧0,1为行索引号,最上方aa,bb,cc为列名):
在这里插入图片描述

将数据转化为dataframe

dict与dataframe

dict变为dataframe:

df = pd.DataFrame(data)
df = pd.DataFrame.from_records(data)
# 即:
df = pd.DataFrame.from_dict(data, orient='columns')
# data: ndarray(结构化dtype),元组列表,dict或DataFrame

dataframe变为dict:

res = df.to_dict(orient='records') # 列名变为key,每行对应的值变为value
# 转化后是 list形式:[{column(列名) : value(值)} … {column:value}];
# list 中每一项是一个dict,表示了该行的 列:值 映射;

其他 orient 形式:to_dict使用

list与dataframe

dataframe常用域

  1. data.columns:获取所有列名;
  2. data.iloc[‘列名’]:根据列名,获取某列数据;
  3. data.iloc[i,j]:根据行列索引,获取指定位置数据;
  4. data.values:以行为单位,返回dataframe所有数据;
  5. data.value[i,j]:根据行列索引,获取指定位置数据。

遍历dataframe

dataframe.item():按列遍历,返回列数据 series
dataframe.iterrows():按行遍历,返回(行索引index,行数据series)的元组

import pandas as pd
a=[['1','2','3'], ['a','b','c']]
# 通过list来构建dataframe
data=pd.DataFrame(a, columns=['aa','bb','cc'])  # columns 列名
for i,row in data.iterrows():
	print(row)

输出:

aa    1
bb    2
cc    3
Name: 0, dtype: object
aa    a
bb    b
cc    c
Name: 1, dtype: object

dataframe排序

  1. 按索引排序:sort_index()
### 按索引排序,需要指定轴和方向,默认为列方向排序
data.sort_index()  # 默认为index升序
data.sort_index(ascending=False)  # 此时为index降序    
data.sort_index(axis=1,ascending=True,inplace=False,na_position='last')
# 此时为行方向升序,inplace指明是否替代原data,na_position指明缺失值的位置('last','first')
data.sort_index().sort_index(axis=1,ascending=True,inplace=False,na_position='last')
# index和colimns同时排序,可以直接粘在后面
  1. 按值排序: sort_values()
### 按值排序
unsorted_df.sort_values(by=['col1','col2'])
unsorted_df.sort_values(by=2,axis=1)  # axis=1时表明对行方向排序,by=1表示对index=1的行排序

dataframe去重

drop_duplicates() 默认:保留第一个重复值,不更改原数据
参数:
keep:

keep="first":只保留第一个重复值
keep="last":只保留最后一个重复值
keep="False":重复值一个不保留

inplace:

True:在原数据上替换,返回None
False:不在原数据上替换,返回去重后的新dataframe

pandas读取保存文件

保存文件

DataFrame.to_csv函数,主要参数:

import pandas as pd
df.to_csv(path_or_buf="filename.csv" , # 保存文件路径,可保存csv,txt,excel
		  sep=',', # 同一行数据的分隔符,默认是逗号
          columns=None, # 默认保存所有列
          header=True, # 默认保存列索引
          index=True) #  默认保存行索引
  • sep:通常是保存csv文件所用的分隔符,会将 同一行 不同列 数据按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)  # 将两个DataFrame按行拼接,即上下拼接起来
pd.concat([data_1, data_2], axis=1)  # 将两个DataFrame按列拼接,即左右拼接起来

pandas.merge

功能:求两个DataFrame的交 / 并 / 补集,类似SQL中的内连接、外连接等操作。

import pandas as pd
dataframe_3 = pd.merge(dataframe_1, dataframe_2, how='inner') 
# inner内连接 按照两者的 共有列 进行连接,也可通过on参数指定 共有列

参考链接:[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多列合并成一列

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Pandas是一个Python库,用于数据处理和分析。在数据分析中,预处理是非常重要的一步,因为它可以帮助我们清洗和转换数据,使其更适合进行分析。Pandas提供了一些强大的预处理功能,括数据清洗、数据转换、数据重塑和数据合并等。在使用Pandas进行数据分析时,预处理是必不可少的一步。 ### 回答2: 在数据分析中,数据的预处理是一个必要的过程。它的主要目的是清洗数据,准备数据,以便后续分析。在Python中,pandas是一种广泛使用的数据处理库。pandas可以通过其高效的数据结构和操作方法来清洗和处理数据。在本文中,将介绍pandas预处理的一些常见技术。 一、读取数据 在pandas中,使用read_csv()函数读取CSV格式的数据文件,read_excel()函数读取Excel格式的数据文件。它们都有很多选项,可以根据具体文件的格式进行设置。 二、查看数据 在pandas中,使用以下函数来查看数据: 1. head() - 显示数据框的前几行; 2. tail() - 显示数据框的后几行; 3. columns - 显示数据框的列名; 4. shape - 显示数据框的行列数; 5. info() - 显示数据框的基本信息,括每列的名称、非空值数量和数据类型。 三、数据清洗 在数据清洗中,有以下一些常见的技术: 1. 删除重复行:使用drop_duplicates()函数; 2. 替换空值:使用fillna()函数; 3. 删除空值:使用dropna()函数; 4. 更改数据类型:使用astype()函数。 四、数据准备 在数据准备中,有以下一些常见的技术: 1. 数据合并:使用merge()函数; 2. 数据筛选:使用loc()函数或者iloc()函数; 3. 数据分组:使用groupby()函数; 4. 数据排序:使用sort_values()函数。 五、数据分析数据分析中,有以下一些常见的技术: 1. 数据聚合:使用agg()函数; 2. 统计描述:使用describe()函数; 3. 数据可视化:使用matplotlib或者seaborn库。 综上所述,pandas预处理是数据分析中必不可少的一步。通过使用pandas提供的函数和方法,可以方便地清理和处理数据,使其更容易被分析。 ### 回答3: PandasPython中最强大的数据处理库之一,它提供了DataFrame和Series这两种数据结构,可以快速便捷地处理数据。在数据分析过程中,我们往往需要先对数据进行预处理,以便后续的分析。Pandas提供了一系列的方法和函数,可以帮助我们进行数据的预处理。 首先,在进行数据分析之前,我们需要了解自己所面对的数据类型和数据结构。Pandas中的DataFrame结构就是类似于表格的结构,每一行代表一个样本,每一列代表一个属性。Series则是一维的数组结构。通过pandas.read_csv(),我们可以读取CSV格式的数据,并转化为DataFrame结构。 接下来,我们要对数据进行一些基本的处理,例如数据清洗、数据去重、缺失值处理、异常值处理等。在数据清洗过程中,我们往往需要对数据进行一些特殊的处理,例如字符串的分割、合并、替换等操作,Pandas提供了一系列能够对文本进行操作的函数。在数据去重方面,我们可以使用drop_duplicates()函数,它可以去除DataFrame中的重复记录。在处理缺失值时,Pandas提供了一系列的函数,如fillna()函数、dropna()函数,可以方便地将NaN值变为其他有意义的值,或者删除缺失值的行或列。在异常值处理方面,我们可以使用isoutlier()函数来找到数据中的异常值,并进行处理。 在数据预处理完成后,我们可以对数据进行一些统计分析,例如计算小计、计算总计、分位数、极差、方差、标准差等统计指标。我们可以使用describe()函数来获得数据的统计描述,还可以使用groupby()函数来对数据分组,使用agg()函数对每组进行计算统计指标。此外,我们还可以对数据进行排序、丢弃、合并等操作。 总之,Pandas是一个非常强大的Python库,可以轻松处理数据预处理和数据处理方面的任务。Pandas作为数据分析数据处理的基础库,使用熟练后可以在数据分析中发挥更大的作用。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值