【Pandas数据分析4】数据操作

简介: 【Pandas数据分析4】数据操作

四、数据操作

1、数据的增加

1.1 按列增加数据

import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
data = [[45, 65, 100], [56, 45, 50], [67, 67, 67]]
index = ['张三', '李四', '王五']
columns = ['数学', '语文', '英语']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df)
print('-------------------------')
# 1、直接赋值
df['政治'] = [90, 89, 100]
print(df)
print('-------------------------')
# 2、使用loc属性在DataFrame对象的最后一列增加
df.loc[:, '化学'] = [100, 30, 98]
print(df)
print('-------------------------')
# 3、在指定的索引位置上插入一列
lst = [100, 90, 99]
df.insert(1, '历史', lst)
print(df)
数学  语文  英语
张三    45    65   100
李四    56    45    50
王五    67    67    67
-------------------------
      数学  语文  英语  政治
张三    45    65   100    90
李四    56    45    50    89
王五    67    67    67   100
-------------------------
      数学  语文  英语  政治  化学
张三    45    65   100    90   100
李四    56    45    50    89    30
王五    67    67    67   100    98
-------------------------
      数学  历史  语文  英语  政治  化学
张三    45   100    65   100    90   100
李四    56    90    45    50    89    30
王五    67    99    67    67   100    98

1.2 按行增加数据

import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
data = [[45, 65, 100], [56, 45, 50], [67, 67, 67]]
index = ['张三', '李四', '王五']
columns = ['数学', '语文', '英语']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df)
print('-------------------------')
# 1、增加一行
df.loc['陈六'] = [56, 67, 90]
print(df)
print('-------------------------')
# 新建DataFrame
new_df = pd.DataFrame(
    data={'数学': [67, 69], '语文': [56, 78], '英语': [100, 99]},
    index=['张丽丽', '王一一']
)
print(new_df)
print('-------------------------')
# 2、一个添加到另一个
df = df.append(new_df)
print(df)
数学  语文  英语
张三    45    65   100
李四    56    45    50
王五    67    67    67
-------------------------
      数学  语文  英语
张三    45    65   100
李四    56    45    50
王五    67    67    67
陈六    56    67    90
-------------------------
        数学  语文  英语
张丽丽    67    56   100
王一一    69    78    99
-------------------------
        数学  语文  英语
张三      45    65   100
李四      56    45    50
王五      67    67    67
陈六      56    67    90
张丽丽    67    56   100
王一一    69    78    99

1.3 增加多行数据

见上!

2、数据的修改

2.1 修改列标题

  • 使用DataFrame对象的columns属性直接赋值
  • 使用DataFrame对象的rename方法修改列标题
import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
data = [[45, 65, 100], [56, 45, 50], [67, 67, 67]]
index = ['张三', '李四', '王五']
columns = ['数学', '语文', '英语']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df)
print('-------------------------')
# 1、直接使用columns属性
df.columns = ['数学(上)', '语文(上)', '英语(上)']
print(df)
print('-------------------------')
# 2、rename inplace=True 直接修改并返回
df.rename(columns={'数学(上)': '数学(下)', '语文(上)': '语文(下)', '英语(上)': '英语(下)'}, inplace=True)
print(df)
数学  语文  英语
张三    45    65   100
李四    56    45    50
王五    67    67    67
-------------------------
      数学(上)  语文(上)  英语(上)
张三        45        65       100
李四        56        45        50
王五        67        67        67
-------------------------
      数学(下)  语文(下)  英语(下)
张三        45        65       100
李四        56        45        50
王五        67        67        67

2.2 修改行标题

  • 使用DataFrame对象的index属性
  • 使用DataFrame对象的rename方法
import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
data = [[45, 65, 100], [56, 45, 50], [67, 67, 67]]
index = ['张三', '李四', '王五']
columns = ['数学', '语文', '英语']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df)
print('-------------------------')
# 1、直接赋值
df.index = list('123')
print(df)
print('-------------------------')
# 2、rename
df.rename({'1': '一一', '2': '二二', '3': '三三'}, inplace=True, axis=0)
print(df)
数学  语文  英语
张三    45    65   100
李四    56    45    50
王五    67    67    67
-------------------------
   数学  语文  英语
1    45    65   100
2    56    45    50
3    67    67    67
-------------------------
      数学  语文  英语
一一    45    65   100
二二    56    45    50
三三    67    67    67

2.3 修改数据

  • 使用DataFrame对象的loc属性和iloc属性
import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
data = [[45, 65, 100], [56, 45, 50], [67, 67, 67]]
index = ['张三', '李四', '王五']
columns = ['数学', '语文', '英语']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df)
print('-------------------------')
# 修改一整行数据
df.loc['张三'] = [100, 100, 100]
print(df)
print('-------------------------')
df.iloc[0, :] = [111, 111, 111]  # 第0行的所有列
print(df)
print('-------------------------')
# 修改一整列数据
df.loc[:, '数学'] = [100, 100, 100]
print(df)
print('-------------------------')
df.iloc[:, 0] = [111, 111, 111]
print(df)
print('-------------------------')
# 修改某一处数据
df.loc['李四', '语文'] = 100
print(df)
print('-------------------------')
df.iloc[1, 1] = 666
print(df)
数学  语文  英语
张三    45    65   100
李四    56    45    50
王五    67    67    67
-------------------------
      数学  语文  英语
张三   100   100   100
李四    56    45    50
王五    67    67    67
-------------------------
      数学  语文  英语
张三   111   111   111
李四    56    45    50
王五    67    67    67
-------------------------
      数学  语文  英语
张三   100   111   111
李四   100    45    50
王五   100    67    67
-------------------------
      数学  语文  英语
张三   111   111   111
李四   111    45    50
王五   111    67    67
-------------------------
      数学  语文  英语
张三   111   111   111
李四   111   100    50
王五   111    67    67
-------------------------
      数学  语文  英语
张三   111   111   111
李四   111   666    50
王五   111    67    67

3、数据的删除

  • 使用DataFrame对象的drop方法
df.drop(labels=None, axis=0, index=None, columns=None, inplace=False)

参数说明:

  • labels:行标签或列标签
  • axis
  • axis=0:按行删除
  • axis=1:按列删除
  • index:删除行,默认值为None
  • columns:删除列,默认值为None
  • inplace:对原数组作出修改并返回一个新数组,默认值为False。如果值为True,那么原数组将直接被替换。
import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
data = [[45, 65, 100], [56, 45, 50], [67, 67, 67]]
index = ['张三', '李四', '王五']
columns = ['数学', '语文', '英语']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df)
print('-------------------------')
# 一、删除某一列
# # 方法1:
# df.drop(['数学'], axis=1, inplace=True)
# print(df)
# print('-------------------------')
# # 方法2:
# df.drop(columns='数学', inplace=True)
# print(df)
# print('-------------------------')
# # 方法3:
# df.drop(labels='数学', axis=1, inplace=True)
# print(df)
# print('-------------------------')
# 二、删除某一行
# # 方法1:
# df.drop(['张三'], axis=0, inplace=True)
# print(df)
# print('-------------------------')
# # 方法2:
# df.drop(index='张三', inplace=True)
# print(df)
# print('-------------------------')
# # 方法3:
# df.drop(labels='张三', axis=0, inplace=True)
# print(df)
# print('-------------------------')
# 三、有条件的删除:删除数学<60
print(df[df['数学'] < 60].index[1])
df.drop(df[df['数学'] < 60].index[1], inplace=True)  # 数学成绩小于60,有张三和李四,删除行索引1的李四
print(df)
数学  语文  英语
张三    45    65   100
李四    56    45    50
王五    67    67    67
-------------------------
李四
      数学  语文  英语
张三    45    65   100
王五    67    67    67


目录
相关文章
|
2天前
|
SQL 人工智能 数据可视化
数据团队必读:智能数据分析文档(DataV Note)五种高效工作模式
数据项目复杂,涉及代码、数据、运行环境等多部分。随着AI发展,数据科学团队面临挑战。协作式数据文档(如阿里云DataV Note)成为提升效率的关键工具。它支持跨角色协同、异构数据处理、多语言分析及高效沟通,帮助创建知识库,实现可重现的数据科学过程,并通过一键分享报告促进数据驱动决策。未来,大模型AI将进一步增强其功能,如智能绘图、总结探索、NLP2SQL/Python和AutoReport,为数据分析带来更多可能。
41 20
|
4天前
|
数据采集 数据可视化 数据处理
Pandas高级数据处理:数据仪表板制作
《Pandas高级数据处理:数据仪表板制作》涵盖数据清洗、聚合、时间序列处理等技巧,解决常见错误如KeyError和内存溢出。通过多源数据整合、动态数据透视及可视化准备,结合性能优化与最佳实践,助你构建响应快速、数据精准的商业级数据仪表板。适合希望提升数据分析能力的开发者。
57 31
|
5天前
|
数据采集 并行计算 数据可视化
Pandas高级数据处理:数据报告生成实战指南
数据报告生成面临数据质量、计算性能、呈现形式和自动化等核心挑战。常见问题包括缺失值导致统计失真、内存溢出及可视化困难。解决方案涵盖数据清洗、分块处理、安全绘图模板等。通过模块化设计、异常处理机制和性能优化策略,如使用`category`类型、并行计算等,可大幅提升效率。最佳实践建议建立数据质量检查清单、版本控制和自动化测试框架,确保系统具备自适应能力,提升报告生成效率300%以上。
38 12
|
11天前
|
监控 物联网 数据处理
Pandas高级数据处理:数据流式计算
本文介绍了如何使用 Pandas 进行流式数据处理。流式计算能够实时处理不断流入的数据,适用于金融交易、物联网监控等场景。Pandas 虽然主要用于批处理,但通过分块读取文件、增量更新 DataFrame 和使用生成器等方式,也能实现简单的流式计算。文章还详细讨论了内存溢出、数据类型不一致、数据丢失或重复及性能瓶颈等常见问题的解决方案,并建议在处理大规模数据时使用专门的流式计算框架。
138 100
Pandas高级数据处理:数据流式计算
|
28天前
|
机器学习/深度学习 搜索推荐 数据挖掘
Pandas数据应用:广告效果评估
在数字化营销中,广告效果评估至关重要。Pandas作为Python的强大数据分析库,在处理广告数据时表现出色。本文介绍如何使用Pandas进行广告效果评估,涵盖数据读取、预览、缺失值处理、数据类型转换及常见报错解决方法,并通过代码案例详细解释。掌握这些技能,可为深入分析广告效果打下坚实基础。
41 17
|
29天前
|
数据采集 供应链 数据可视化
Pandas数据应用:供应链优化
在当今全球化的商业环境中,供应链管理日益复杂。Pandas作为Python的强大数据分析库,能有效处理库存、物流和生产计划中的大量数据。本文介绍如何用Pandas优化供应链,涵盖数据导入、清洗、类型转换、分析与可视化,并探讨常见问题及解决方案,帮助读者在供应链项目中更加得心应手。
50 21
|
29天前
|
SQL 数据可视化 大数据
从数据小白到大数据达人:一步步成为数据分析专家
从数据小白到大数据达人:一步步成为数据分析专家
217 92
|
30天前
|
数据采集 存储 供应链
Pandas数据应用:库存管理
本文介绍Pandas在库存管理中的应用,涵盖数据读取、清洗、查询及常见报错的解决方法。通过具体代码示例,讲解如何处理多样数据来源、格式不一致、缺失值和重复数据等问题,并解决KeyError、ValueError等常见错误,帮助提高库存管理效率和准确性。
106 72
|
1月前
|
机器学习/深度学习 数据采集 供应链
Pandas数据应用:销售预测
本文介绍如何使用Pandas进行销售预测。首先,通过获取、清洗和可视化历史销售数据,确保数据质量并理解其特征。接着,进行特征工程,构建线性回归等模型进行预测,并评估模型性能。最后,针对常见问题如数据类型不匹配、时间格式错误、内存不足和模型过拟合提供解决方案。掌握这些步骤,可有效提升销售预测的准确性,助力企业优化库存管理和提高客户满意度。
55 17
|
1月前
|
机器学习/深度学习 存储 算法
Pandas数据应用:客户流失预测
本文介绍如何使用Pandas进行客户流失预测,涵盖数据加载、预处理、特征工程和模型训练。通过解决常见问题(如文件路径错误、编码问题、列名不一致等),确保数据分析顺利进行。特征工程中创建新特征并转换数据类型,为模型训练做准备。最后,划分训练集与测试集,选择合适的机器学习算法构建模型,并讨论数据不平衡等问题的解决方案。掌握这些技巧有助于有效应对实际工作中的复杂情况。
142 95