pandas是一个提供了数据操作和数据分析工具的模块。它支持两种主要数据结构:Series和DataFrame。
Series是一种类似于NumPy数组的对象,它由一组数据(任何NumPy数据类型)以及一组与之相关的数据标签(index)组成。
DataFrame则是一种二维表格类型数据结构,它可以容纳不同数据类型的列,包括数字,字符串和布尔值等。它类似于Excel或SQL表格。
在使用pandas时,我们通常需要进行的操作包括读取数据、数据清洗、数据分析和数据可视化等。
使用pandas可以大大提高数据处理的效率和准确性,特别是在数据预处理、建模和报表制作等方面。它是数据科学的核心之一,非常值得学习和掌握。
pands在日常数据处理中的使用方法总结了七大类,如果更详细的使用说明和更全面的函数说明可以浏览官网:https://pandas.pydata.org/
首先导入pandas包
import pandas as pd
DataFrame的创建可以由多种方式创建,比如从列表、csv、excel、json等格式
import pandas as pd
import numpy as np
df_define = pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006],
"date":pd.date_range('20130102', periods=6),
"city":['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai', 'BEIJING '],
"age":[23,44,54,32,34,32],
"category":['100-A','100-B','110-A','110-C','210-A','130-F'],
"price":[1200,np.nan,2133,5433,np.nan,4432]},
columns =['id','date','city','category','age','price'])
import pandas as pd
df = pd.DataFrame(pd.read_csv('csv_path.csv'))
import pandas as pd
df_excel = pd.DataFrame(pd.read_excel('excel_path.excel', index_col = None))
df_values = df.values
df_shape = df.shape
df_info = df.info
df_index = df.index
df_index_values = df.index.values
df_column = df.columns
df_columns_values = df.columns.values
df_dtypes = df.dtypes
df_only_dtypes = df['name'].dtypes
df_column_value = df['name'].values
df_row_value = df.iloc[1].values
df_isnull = df.isnull()
df_column_isnull = df['name'].isnull
# 默认五行
df_head = df.head()
df_tail = df.tail()
df_loc_2 = df.loc[2]
df_iloc = df.iloc[0:3]
# 提取几行几列
df_iloc_column = df.iloc[:3,:2]
# 提取某行某列
df_iloc_com = df.iloc[[0,1,2],[0,1]]
print(df_iloc)
print(df_iloc_column)
print(df_iloc_com)
# 设置索引
df_ix = df.set_index('dt')
df_ix_dt = df_ix[:'2023-01-03']
df_ix_column = df_ix.loc[df_ix.index > '2023-01-02',['name']]
df_filter_age = df[df.age > 10]
df_filter_only_age = df['name'][df.age > 10]
fliter_list = ['tom','jery']
df_filter_list_value = df[df.name.isin(fliter_list)]
# 过滤出name='tom'并且age=1
df_select_and = df.loc[(df['name'] == 'tom') & (df['age'] == 1),['name','age']]
# 过滤出name='tom'或者age>1的
df_select_or = df.loc[(df['name'] == 'tom') | (df['age'] > 1), ['name','age']]
# 过滤name!='tom'后按照age排序
df_select_sort = df.loc[(df['name'] != 'tom'), ['name','age']].sort_values(['age'], ascending=False)
# 对name列计数
df_count = df.groupby('name').count()
df_sum = df['age'].sum()
df_max = df['age'].max()
df_min = df['age'].min()
df_avg = df['age'].mean()
# 按照name分组,取age的count、mean、sum
df_agg = df.groupby('name').agg({'age':['count', 'mean', 'sum']})
print(df_max)
print(df_min)
print(df_avg)
print(df_agg)
'''
sum:求和
mean: 平均值
count:计数
std: 标准差
var: 方差
min: 最小值
max: 最大值
median: 中位数
quantile: 分位数
cov: 协方差
'''
# 简单采样
df_sample = df.sample(n=3)
# 设置权值
weights = [0.3,0.3,0.3,0.4]
df_sample_weight = df.sample(n=2, weights=weights)
# 放回采样
df_replace_true = df.sample(n=2, replace=True)
# 不放回采样
df_replace_false = df.sample(n=2, replace=False)
df_desc = df.describe().round(2).T
df_corr = df.corr()
# 两个字段的相关性分析
df_corr_column = df['age'].corr(df['age'])
df.tocsv('path.csv')
df.to_excel('path.xlsx',sheet_name='sheet_name')
pandas中的loc和iloc都是用于选取数据的方法,但两者的使用方式、效果和用途有些不同。