Pandas主要有三种数据结构。
1)Series,带标签的一维数组。
2)Dataframe,带标签且大小可变的二维表格结构。
3)Panel,带标签且大小可变的三维数组。
本次主要总结的是pandas用于操作Dataframe的相关操作。
一、导入扩展库numpy和pandas,按照Python社区的惯例,在导入扩展库numpy时会起一个别名np,在导入扩展库pandas时会起一个别名pd。
Import numpy as np
Import pandas as pd
二、创建Dataframe对象
pd.Dataframe(数据,索引,列名)
1)使用numpy的二维数组生成pandas的二维数组
如:
2)使用Python字典生成pandas的二维数组
四、查看二维数组数据的列名、索引和值
df.index #查看索引
df.columns #查看列名
df.values #查看值
应用于第二个Datafame对象,得:
五、查看二维数组的基本信息和统计信息
df.info() #查看二维数组的基本信息
df.describe() #查看二维数组的统计信息
应用于第一个Dataframe对象,得:
六、对二维数组进行排序操作
七、二维数组数据的选择与访问
八、二维数组数据的修改
1.可以通过指定行索引和列名来修改单个单元格的值。
如:修改索引为2的行的'Age'列的值
df.at[2, 'Age'] = 22
print(df)
2. 可以直接通过列名来访问整列,并对其进行修改。
如:将所有'City'列的值取反
df['City'] = -df['City']
print(df)
4. 修改整行的值
虽然Pandas没有直接修改整行数据的内置方法,但你可以通过选择整行并分配一个新序列来实现。
一)修改索引为3的行的数据
new_row = pd.Series(['Charlie', 25, 'Madrid'], index=['Name', 'Age', 'City'])
df.loc[3] = new_row
print(df)
4. 使用条件修改数据
将所有年龄大于20的'City'列的值更改为'Adult City'
df.loc[df['Age'] > 20, 'City'] = 'Adult City'
print(df)
5. 添加或删除列
添加列:可以直接赋值一个新的列名。
删除列:使用drop方法,并指定axis=1(表示列)。
添加新列
df['Country'] = 'USA'
删除列
df = df.drop('Country', axis=1)
print(df)
若要删除源文件中的数据,df.drop(columns=[‘column1’,’column2’],inplace=True)
补充:删除行
它由第一个参数labels和第二个参数axis指定。行指定axis= 0。
print(df.drop('Charlie', axis=0))
由于默认值为axis = 0,因此可以省略axis。
print(df.drop('Charlie'))
九、读写文件
保存数据到excel文件中:df.to_excel(‘d:\test.xlsx’,sheet_name=’dfg’)
载入数据:
Df=pd.read_excel(‘d:\test.xlsx’,’dfg’,index_col=None,na_values=[‘NA’])
保存数据到csv文件中:df.to_csv('train_chinese.csv') #将你加载并做出改变的数据,在工作目录下保存为一个新文件train_chinese.csv
载入数据:
(1) 使用相对路径载入数据df = pd.read_csv('train.csv')
(2) 使用绝对路径载入数据df = pd.read_csv('D:/pandas作业/train.csv')
十、二维数组的数据预处理
1)缺失值的处理
3)重复值的处理
十、分组计算
groupby 函数是Pandas库中一个非常强大的功能,它允许你根据一个或多个键对数据进行分组,并对每个分组应用聚合函数。这在进行数据分析时非常有用,因为它允许你轻松地计算每个分组的统计信息,如计数、平均值、最大值、最小值、标准差等。
df.groupby(‘A’).sum()
Df.groupby([‘A’,’B’]).mean()
十一、lamada不等式
如 f=lamada x,y,z:x+y+z
十二、频次统计信息
在Python中,value_counts() 方法是Pandas库中Series对象的一个非常有用的方法,它用于计算每个唯一值在Series中出现的次数,并返回一个按出现次数降序排列的Series对象。这对于数据分析和数据清洗过程中快速了解某个字段或变量的分布情况非常有帮助。
使用方法
假设你有一个Pandas的Series对象s,你可以直接调用s.value_counts()来获取每个唯一值及其对应的出现次数。
import pandas as pd
data = ['apple', 'banana', 'apple', 'orange', 'banana', 'banana']
s = pd.Series(data)
vc = s.value_counts()
print(vc)
输出将会是:
banana 3
apple 2
orange 1
dtype: int64
value_counts() 也可以用于DataFrame的某一列,但返回的是Series对象。