python数据处理包——pandas

目录

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

pandas.DataFrame

pandas对数据的封装格式。

新建dataframe

示例:

import pandas as pd

data1 = pd.DataFrame()
a=[['1','2','3'], ['a','b','c']]

data=pd.DataFrame(a, columns=['aa','bb','cc'])

data格式(最左侧0,1为行索引号,最上方aa,bb,cc为列名):

python数据处理包——pandas

将数据转化为dataframe

dict与dataframe

dict变为dataframe:

df = pd.DataFrame(data)
df = pd.DataFrame.from_records(data)

df = pd.DataFrame.from_dict(data, orient='columns')

dataframe变为dict:

res = df.to_dict(orient='records')

其他 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']]

data=pd.DataFrame(a, columns=['aa','bb','cc'])
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()
data.sort_index(ascending=False)
data.sort_index(axis=1,ascending=True,inplace=False,na_position='last')

data.sort_index().sort_index(axis=1,ascending=True,inplace=False,na_position='last')

  1. 按值排序: sort_values()

unsorted_df.sort_values(by=['col1','col2'])
unsorted_df.sort_values(by=2,axis=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" ,
          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)
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多列合并成一列

Original: https://blog.csdn.net/qq_45847624/article/details/119908587
Author: 冲上云霄!
Title: python数据处理包——pandas

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/676159/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球