Pandas DataFrame:数据预处理与操作实战

2 下载量 61 浏览量 更新于2024-08-03 2 收藏 380KB PDF 举报
在数据分析和数据预处理中,Pandas DataFrame是一个核心的数据结构,它提供了丰富的数据操作功能。本文将围绕Pandas DataFrame展开一系列基础知识点的讲解,并通过代码示例来演示其应用。 首先,我们将数据导入Pandas并创建DataFrame,如例子所示: ```python import pandas as pd data = { "code": ['000008', '000009', '000021', '000027', '000034', '000058', '000062', '00006...], "name": ['神州科技', '中国宝安', '深科技', '深圳能源', '神州数码', '深赛格', '深圳华强', ...], "concept": ['5G', '创投', '芯片概念', '创投', '网络安全', '创投', '创投', '芯片概念', ...] } stock_df = pd.DataFrame(data=data) ``` 1. **字符替换**:DataFrame中对特定列进行字符替换是非常常见的操作。例如,可以使用`map()`函数配合字典,将如“ys4ng35toofdviy9ce0pn1uxw2x7trjb”这样的编码替换为“娱乐”。另一个例子是使用`str.replace()`方法,针对单个字符串进行替换,如将“5G”替换为“6G”,“创投”替换为“创业投资”。 ```python dicts = {'ys4ng35toofdviy9ce0pn1uxw2x7trjb': '娱乐', ...} res['name'] = res['name'].map(lambda x: dicts[x] if x in dicts else x) stock_df['concept'] = stock_df['concept'].str.replace('5G', '6G').str.replace('创投', '创业投资') ``` 2. **分组统计**:利用`groupby()`方法,可以按某一列进行分组,然后进行统计分析。例如,对`'name'`列进行分组,计算每个类别出现的次数(使用`value_counts()`)或求和(使用`sum()`)。 ```python name_counts = stock_df.groupby('name')['concept'].value_counts() # 或者按概念进行分组求和 concept_sums = stock_df.groupby('concept')['code'].sum() ``` 3. **数据排序**:可以使用`sort_values()`方法对DataFrame按指定列进行升序或降序排序。 4. **数据转换**:包括数据类型转换,如日期格式化,可以使用`to_datetime()`函数;空值处理,如使用`fillna()`填充缺失值,或者`dropna()`删除含有缺失值的行。 5. **数据操作**:例如,添加、删除列,如`df['new_column'] = df['old_column'] + '附加字符'`;合并多行数据为一行,可以使用`pivot()`或`melt()`等函数;截取特定字符;删除包含特殊字符的行等。 6. **文本处理**:在处理文本数据时,可能需要进行字符截取、替换或删除特定字符等操作。 7. **时间计算**:例如,使用`pd.to_timedelta()`计算两个时间列之间的差值。 8. **数据清洗**:删除重复数据,使用`drop_duplicates()`函数;取消或重置索引,使用`reset_index(drop=True)`。 9. **统计计算**:Pandas提供了一系列内置函数来进行计算,如`mean()`, `median()`, `min()`, `max()`, `count()`等,以及更高级的统计方法,如`cumsum()`累计求和。 10. **筛选和过滤**:使用`str.contains()`函数可以进行正则匹配筛选,根据特定条件筛选行。 通过以上这些操作,Pandas DataFrame成为了数据清洗、转换和分析的强大工具,使得数据分析工作更加高效和灵活。熟练掌握这些基础操作,将有助于你在实际项目中处理各种复杂的数据处理任务。