python pandas函数
Pandas是一个强大的Python数据分析库,它提供了大量的数据处理和分析功能,Pandas是基于NumPy构建的,可以非常方便地处理结构化数据,Pandas的主要数据结构是DataFrame,它是一个二维表格型数据结构,可以存储多种类型的数据,并且具有很多方便的数据处理功能。
(图片来源网络,侵删)
安装Pandas
要使用Pandas,首先需要安装它,可以通过以下命令安装:
pip install pandas
导入Pandas
在Python中,可以使用以下语句导入Pandas库:
import pandas as pd
创建DataFrame
DataFrame是Pandas中最常用的数据结构,可以使用以下方法创建DataFrame:
1、从字典创建DataFrame:
data = {'column1': [1, 2, 3], 'column2': ['A', 'B', 'C']} df = pd.DataFrame(data)
2、从列表创建DataFrame:
data = [[1, 'A'], [2, 'B'], [3, 'C']] columns = ['column1', 'column2'] df = pd.DataFrame(data, columns=columns)
3、从CSV文件创建DataFrame:
df = pd.read_csv('file.csv')
4、从Excel文件创建DataFrame:
df = pd.read_excel('file.xlsx')
DataFrame的基本操作
1. 查看数据前5行:
df.head()
2. 查看数据后5行:
df.tail()
3. 查看数据的列名:
df.columns
4. 查看数据的形状(行数和列数):
df.shape
5. 查看数据的基本信息:
df.info()
6. 查看数据的统计信息:
df.describe()
7. 选择某一列:
df['column_name']
8. 选择多列:
df[['column_name1', 'column_name2']]
9. 根据条件筛选数据:
df[df['column_name'] > value]
10. 根据条件筛选并保留满足条件的行:
df[df['column_name'] > value].dropna() # 删除不满足条件的行中的NaN值,保持原顺序不变;如果要保持原顺序不变,可以使用 df[df['column_name'] > value].dropna(how='all'),表示删除所有不满足条件的行。
11. 根据条件筛选并保留满足条件的行(不改变原数据):
df[df['column_name'] > value].copy() # 复制满足条件的行到新的DataFrame中,不改变原数据,如果要保持原顺序不变,可以使用 df[df['column_name'] > value].copy(deep=True),注意,这种方法会复制整个DataFrame,如果数据量很大,可能会占用大量内存,建议使用 dropna() 或 dropna(how='all') 方法来保持原顺序不变,这种方法不会删除不满足条件的行中的NaN值,如果需要删除这些NaN值,可以使用 dropna() 或 dropna(how='all') 方法,这种方法也不会删除重复的行,如果需要删除重复的行,可以使用 drop_duplicates() 方法,这种方法也不会对数据进行排序,如果需要对数据进行排序,可以使用 sort_values() 方法,需要注意的是,sort_values() 方法默认按照升序排序,如果需要按照降序排序,可以在 sort_values() 方法中设置参数 ascending=False,df[df['column_name'] > value].sort_values(by='column_name', ascending=False),还可以使用 sort_index() 方法对索引进行排序,df[df['column_name'] > value].sort_index(ascending=False),需要注意的是,sort_index() 方法默认按照升序排序索引,如果需要按照降序排序索引,可以在 sort_index() 方法中设置参数 ascending=False,df[df['column_name'] > value].sort_index(ascending=False),还可以使用 reset_index() 方法重置索引,df[df['column_name'] > value].reset_index(drop=True),需要注意的是,reset_index() 方法默认重置索引为从0开始的整数,如果需要重置索引为其他值,可以在 reset_index() 方法中设置参数 name='new_index',df[df['column_name'] > value].reset_index(name='new_index'),还可以使用 rename() 方法重命名列名,df[df['column_name'] > value].rename(columns={'old_column_name': 'new_column_name'}),需要注意的是,rename() 方法只能重命名列名,不能重命名行名,如果需要重命名行名,可以使用 rename() 方法结合 iloc[] 或 at[] 方法来实现,df[df['column_name'] > value].rename(columns={'old_column_name': 'new_column_name'}).iloc[:, [0]] = df[df['column_name'] > value].rename(columns={'old_column_name': 'new_column_name'}).at[0, 'new_column_name'],需要注意的是,这种方法只能重命名第一行的行名,如果需要重命名其他行的行名,可以使用循环来实现,for i in range(len(df)): if df[i]['column_name'] > value: df.at[i, 'new_column_name'] = df.at[i, 'old_column_name'],需要注意的是,这种方法只能重命名满足条件的行的行名,如果需要重命名所有行的行名,可以使用循环来实现,for i in range(len(df)): df.at[i, 'new_column_name'] = df.at[i, 'old_column_name'],需要注意的是,这种方法会修改原始数据,如果不想修改原始数据,可以使用 copy() 方法复制一份新的DataFrame再进行操作,df[df['column_name'] > value].copy().rename(columns={'old_column_name': 'new_column_name'}),还可以使用 merge()、concat()、join()、append()、drop()、fillna()、replace()、round()、clip()、quantile()、rank()、cumsum()、shift()、applymap()、apply()、groupby()、agg()、pivot()、melt()、stack()、unstack()、dtypes