pandas 处理数据常用功能

数据计算和统计基础

mean() 
	默认参数axis=0,表示为列。与apply参数相反
	也可设置skipna=False,默认为True,跳过空值
count(),min(), sum(), median(), 
quantile(q=0.75) 统计分位数
std(), var(), skew(), kurt() 标准差,方差,偏度,峰度

cumsum(), cumprod(), cummax(), cummin() 累计和,差,最大值,最小值

唯一值:Series.unique()
值计数:Series.value_count(sort=Flase) 参数默认True
成员资格:isin()

文本数据

通过str访问,自动排除/NA值
	s.str.count()
	df['key1'].str.upper() # df no attribute 'str'
	df.coulumns.str.upper()
	
字符串常用方法:针对series每个元素操作
	1、lower, upper, len, startswith, endswith
	2、strip(), replace(, n=1)#n替换个数, split() 参数expand和n, 
	3、字符串索引,取每个字符的前n个,eg:'abcd'-->str[:2] --> 'ab'

合并merge, join

pd.merge(left, right, how='inner', on=None, 
		left_on=None, right_on=None,
		left_index=False, right_index=False, 
		sort=True, suffixes=('_x', '_y'), copy=True, indicator=False)
	 how参数: inner, outer, left, right
	 sort:像字典,会对第一列排序。默认为False,设置为False会大幅提高性能
	 另一种sort: 也可以调用sort_index(), sort_values()方法。

pd.join() --> 直接通过索引链接
	参数on: 也可以设置关键字

连接与修补 concat、combine_first

连接 - 沿轴执行连接操作
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
		  keys=None, levels=None, names=None, verify_integrity=False,
		  copy=True)
	参数axis:0表示行相加,1表示列相加
	参数join: outer、inner
	参数join_axes: 指定联合的index
	参数keys:axis为0时变为multiIndex,1时覆盖列名

修补 pd.combine_first()
	df1.combine_first(df2)
		根据index, df1空值被df2替换
		如果df2的index多于df1,则更新到df1上
覆盖 df1.update(df2) 按照index覆盖

去重及替换

去重  .duplicated()   .drop_duplicates() Series和df都可以直接使用
替换  .replace() Sr和df都可以直接用(Sr.str可以替换单个字符'bab'中的'a')

数据分组 groupby

df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)
	参数level:唯一索引用level=0,将相同index分为一组
#分组 - 可迭代对象
	list(df.groupby('X'))
#提取分组后的组
	df.groupby('X').get_group('A') 
	df.groupby('X').size() # 查看分组长度
#axis=1 即列分组,将按照值类型分组
#通过字典或者Series作为分组依据
#通过函数分组,df.groupby(len).sun()
#分组计算函数方法
	first, last # 非NaN第一个,最后一个
	sum, mean, median, count, min, std, prod #prod为积
#多函数计算:agg()
#分组后应用函数,再转为df
	df.groupby('X').apply().reset_index()

拆分-应用-合并 transform/apply

# .add_prefix('mean_'):添加前缀
transform 即使groupby,也还是对每个计算并分开显示

apply
	df.groupby().apply(lambda x: x.describe())
	df.groupby().apply(demo, x) #传递给demo函数参数x

透视表及交叉表 df.pivot_table(), df.crosstabl()

数据读取 read_table(), read_excel(), read_csv()

### Pandas库中的常用数据处理操作 Pandas 是 Python 中用于数据分析的强大工具,提供了丰富的功能处理各种形式的数据。以下是 Pandas 库中常用的几种数据处理操作及其具体实现方式: #### 1. 数据读取与写入 Pandas 提供了多种方法来读取和存储不同格式的数据文件。例如,可以使用 `pd.read_csv` 方法从 CSV 文件加载数据[^3]。 ```python import pandas as pd # 加载CSV文件 df = pd.read_csv('example.csv') # 将DataFrame保存为CSV文件 df.to_csv('output.csv', index=False) ``` #### 2. 数据选择与过滤 可以通过布尔索引来筛选满足特定条件的数据行。此外,还可以利用 `.loc[]` 和 `.iloc[]` 来按标签或位置选取子集[^1]。 ```python # 使用布尔索引筛选年龄大于30岁的记录 filtered_df = df[df['age'] > 30] # 利用.loc按照列名访问指定范围内的数据 subset_df = df.loc[:, ['name', 'age']] ``` #### 3. 数据清洗 对于缺失值的处理是常见的需之一。这包括检测、填充或者删除含有NaN的条目;另外还有复项移除等功能。 ```python # 删除任何包含NA/null值的行 cleaned_df = df.dropna() # 替换所有的null/NA为空字符串"" filled_df = df.fillna("") ``` #### 4. 数据转换 应用自定义函数到整个Series 或 DataFrame 上面是非常普遍的需。比如对某一列执行某种计算并创建新列。 ```python # 创建一个新的双倍年龄列 df['double_age'] = df['age'].apply(lambda x: x * 2) # 对整数类型的某列增加固定偏移量 df['salary_plus_bonus'] = df['salary'].map(lambda s: s + bonus_amount) ``` #### 5. 统计汇总 (GroupBy & Aggregation) 通过 groupby 可以轻松完成基于某些键值分组后的统计分析工作,如平均值、总计等[^2]。 ```python # 计算每个性别的平均工资 grouped_salary = df.groupby('gender')['salary'].mean() ``` #### 6. 合并与连接 当需要组合来自多个表的信息时,merge/join 功能就显得尤为要了。它允许依据共同字段将两张表格关联起来[^2]。 ```python merged_df = pd.merge(df_left, df_right, on='key_column') ``` 以上只是Pandas众多特性的一部分展示而已,在实际项目里还会有更多复杂场景需要用到该库的功能[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值