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')
posted @ 2024-07-22 16:16  无皈  阅读(25)  评论(0)    收藏  举报