Pandas入门
Pandas入门
1.读取和写入数据
①read _csv():从 CSV文件读取数据到DataFrame。
import pandas as pd
读取文件名为"data.csv'的数据
df= pd.read_csv('data.csv')
②read_excel():从 Excel文件读取数据。
假设有一个文件名为1data.xlsx
df = pd.read_excel('data.xlsx')
③read_sql():从SQL数据库读取数据。
import pandas as pd
import sqlalchemy as sa
#建立数据库连接
engine = sa.create_engine('sqlite:///my_database.db')
#读取名为'my_table'的表格
df= pd.read_sql('my_table', engine)
④to_csv():将DataFrame数据写入CSV文件。
df.to_csv('output.csV', index=False)
⑤to_excel():将DataFrame数据写入 Excel文件。
df.to_excel('output.xlsx', index=False)
⑥to_sql():将DataFrame数据写入SQL数据库。
df.to_sql('my_table',engine, if_exists='replace',index=False)
⑦read_json(),to_json():读取和写入JSON文件。
#读取JSON
df= pd.read_json('data.json')
#写入JSON
df.to_json('output.json')
⑧read_htm l(),to_html():读取HTML表格数据,写入数据到HTML。
#读取HTML
#返回一个列表,每个元素是一个DataFrame
list_of_df= pd.read_html('http://example. com/table.html')
#写入HTML
df.to_html('output.html')
⑨read_parquet(),to_parquet():读取和写入Parquet文件,一种高效的列存储格式。
#读取Parquet
df= pd.read_parquet(' data.parquet')
#写入Parquet
df.to_parquet('output.parquet')
2.数据探索和检查
①head():查看DataFrame 的前几行。
df.head()#默认显示前5行
②tail():查看DataFrame 的后几行。
df.tail()#默认显示后5行
③info():获取DataFrame的概要信息。
df. info()
④describe ():显示数据的统计摘要。
df. describe()
⑤dtypes:查看每列的数据类型。
df.dtypes
3.数据清洗和预处理
①dropna ():删除含有缺失值的行或列。
df.dropna()#删除含有NaN 的行
②fiulna():填充缺失值。
df.f1llna(value=0)#用日填充NaN
③drop():删除指定的行或列。
df.drop(C'column1','column2'],axis=1)#删除指定列
④rename():重命名DataFrame 的索引或列名。
df.rename (columns={'old_name': Inew_name '})
⑤astype():转换列的数据类型。
df['column'].astype(' float')
4.数据筛选和索引
①loc[:基于标签的索引。
df.loc[df['column']>10]
②iloc[]:基于位置的索引。
df.iloc[o:5]#选择前5行
③query():使用查询字符串来筛选数据。
df.query('column >10')
5.数据操作和转换
①groupby():按照某些列进行分组。
df.groupby('column').sum ()
②pivot-table():创建透视表。
df.pivot_table(values='D', index=['A', 'B'], columns=['C'])
③merge():合并两个DataFrame。
pd.merge(df1, df2, on='key')
④concat():连接两个或多个DataFrame。
pd.concat([df1, df2])
⑤apply():对数据应用函数。
df.apply(lambda x: x.max()-x.min()
6.时间序列分析
①to_datetime():将字符串转换为datetime对象。
pd.to_datetime (df[' column '])
②resample ():对时间序列数据进行重采样。
df.resample('M').mean()
③rolling():应用滚动窗口计算。
df.rolling(window=3).mean()
7.其他有用功能
①unique():查找列中的唯一值。
df[' column'].unique()
②va lue_counts():计算一列中各值出现的频次。
df['column'].value_counts()
③sort_values():按照一列或多列的值进行排序。
df.sort_values (by='column')
④isna():检测缺失值。
df.isna()
8.聚合和统计
①sum():计算数值列的总和。
df['column'].sum()
②mean():计算数值列的平均值。
df['column'].mean()
③median():计算数值列的中位数。
df['column'].median()
④min():找出数值列的最小值。
df['column '].min()
⑤max():找出数值列的最大值。
df['Column'].max()
⑥std():计算数值列的标准差。
df['column'].std ()
⑦var():计算数值列的方差。
df['column '].var()
⑧count():计算非空值的数量。
df[' column'].count()
⑨agg():使用一个或多个操作同时对一组数据进行聚合。
df.agg({'column1':['sum', 'min'l, 'column2': ['max', Imean']})
9.数据转换
①melt():将DataFrame 从宽格式转换为长格式。
pd.melt(df, id_vars=['A'l,value_vars=['B', 'C'])
②pivot():将数据从长格式转换为宽格式。
df.pivot(index=' date', columns='variable', values='value')
③cut():将连续数据分割成离散的区间。
pd.cut(df[' column'1, bins=3)
④qcut():基于样本分位数来分割数据。
pd.qcut(df[' column'], q=4)
10.字符串处理
①lower():将字符串转换为小写。
df[' column '].str.lower()
②upper():将字符串转换为大写。
df['column'].str.upper()
③len ():计算字符串的长度。
df[' column'].str.len()
④strip():删除字符串前后的空白符(包括空格、换行符等)。
df['column'].str.strip()
⑤lstrip():删除字符串左边的空白符。
df[' column'].str.lstrip()
⑥rstrip():删除字符串右边的空白符。
df['column '].str.rstrip()
⑦contains():检查每个字符串是否包含特定模式/子字符串。
df['column'].str.contains ('pattern')
⑧startswith():检查字符串是否以特定子字符串开始。
df['column'].str.startswith('prefix')
⑨endswith():检查字符串是否以特定子字符串结束。
df[' column'].str.endswith(' suffix')
⑩match():根据给定的正则表达式匹配字符串。
df[' column'].str.match(rI^pattern$')
⑪replace():替换字符串中的某些部分。
df[' column'].str.replace('old', 'new')
⑫split():根据分隔符拆分字符串为多个部分。
df[' column'].str.split(',')
⑬join():将序列中的元素连接成字符串。
df[' column'].str.join('-1)
⑭cat():连接字符串(默认按行连接)。
df[' column'].str.cat(sep=',1)
11.正则表达式
①extract():使用正则表达式从字符串中提取一部分。
df[' column'1.str.extract(r' (pattern)')
②findal1():使用正则表达式查找字符串中的所有匹配项。
df['column '].str.findall(r'pattern')
③replace():使用正则表达式替换字符串中的部分内容。
df['column '].str.replace(r'pattern', Ireplacement',regex=True)
12.辅助判断与提取
①isnumeric():检查每个字符串是否只包含数字。
df['column '].str.isnumeric()
②isdecimal():检查每个字符串是否只包含十进制数字。
df['column'].str.isdecimal(
③isalpha():检查每个字符串是否只包含字母。
df['column'].str. isalpha()
④isdigit():检查每个字符串是否只包含数字。
df[' column'].str.isdigit()
⑤islower():检查每个字符串是否只包含小写字母。
df[' column'].str.islower()
⑥isupper():检查每个字符串是否只包含大写字母。
1 df['column '].str.isupper ()
⑦istitle():检查字符串是否是标题化的(每个单词的首字母大写)。
df['column'].str.istitle()
13.数据可视化
plot():默认绘制线图。
df.plot()
①plot.bar(),plot.barh():绘制条形图。
df.plot.bar( #垂直条形图2df.plot.barh()#水平条形图
②plot.hist():绘制直方图。
df.plot.hist()
③plot.box():绘制箱形图。
df.plot.box()
④plot.area():绘制面积图。
df.plot.area()
⑤plot.pie():绘制饼图。
df.plot.pie(subplots=True)
⑥plot.scatter():绘制散点图。
df.plot.scatter(x='columnl', y=' column2')
14.处理重复数据
①duplicated():检查重复行。
df.duplicated ()
②drop_duplicates():删除重复行。
df.drop_duplicates ()
15.数据连接
①concat():沿着一个轴将多个对象堆叠到一起。
pd. concat([df1, df2])
②merge():根据一个或多个键将不同DataFrame的行连接起来。
pd.merge (df1, df2, on='key')
③join():对索引进行连接。可以是内连接、外连接、左连接或右连接。
df1.join(df2, how='left')
④append():将一行或多行附加到DataFrame 上,相当于concat()的特例。
df1.append (df2)
16.数据分组和分箱
①cut():将连续的数值分割成离散的区间。
pd.cut(df[' column'], bins=3)
②qcut():基于样本分位数来划分数据。
pd.qcut(df[' column'1, q=4)
③set_index():将DataFrame中的一列或多列设置为索引。
df.set_index('column')
17.索引操作
①set_index():将DataFrame 的一列或多列设置为索引。
df.set_index('column')
②reset_index():重置DataFrame 的索引,使之回到默认整数索引。
df.reset_index()
③swaplevel():交换索引的级别。
df. swaplevel()
④stack():将列旋转为行。
df.stack()
⑤unstack():将行旋转为列。
df.unstack()
18.性能提升
①eval0):使用字符串表达式快速计算DataFrame的操作,有助于提高性能。
pd.eval('df1 + df2')
②query():使用字符串表达式对DataFrame进行查询。
df.query('column >10')

浙公网安备 33010602011771号