【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


目录
相关文章
|
6天前
|
存储 JSON 数据处理
从JSON数据到Pandas DataFrame:如何解析出所需字段
从JSON数据到Pandas DataFrame:如何解析出所需字段
19 1
|
6天前
|
数据可视化 前端开发 数据挖掘
R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享(上)
R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享
|
3天前
|
数据采集 监控 数据可视化
Pandas平滑法时序数据
【5月更文挑战第17天】本文介绍了使用Python的Pandas库实现指数平滑法进行时间序列预测分析。指数平滑法是一种加权移动平均预测方法,通过历史数据的加权平均值预测未来趋势。文章首先阐述了指数平滑法的基本原理,包括简单指数平滑的计算公式。接着,展示了如何用Pandas读取时间序列数据并实现指数平滑,提供了示例代码。此外,文中还讨论了指数平滑法在实际项目中的应用,如销售预测和库存管理,并提到了在`statsmodels`库中使用`SimpleExpSmoothing`函数进行模型拟合和预测。最后,文章强调了模型调优、异常值处理、季节性调整以及部署和监控的重要性,旨在帮助读者理解和应用这一方法
12 2
 Pandas平滑法时序数据
|
6天前
|
数据采集 数据可视化 数据挖掘
利用Python和Pandas库优化数据分析流程
在当今数据驱动的时代,数据分析已成为企业和个人决策的重要依据。Python作为一种强大且易于上手的编程语言,配合Pandas这一功能丰富的数据处理库,极大地简化了数据分析的流程。本文将探讨如何利用Python和Pandas库进行高效的数据清洗、转换、聚合以及可视化,从而优化数据分析的流程,提高数据分析的效率和准确性。
|
6天前
|
数据挖掘 数据处理 索引
使用Pandas从Excel文件中提取满足条件的数据并生成新的文件
使用Pandas从Excel文件中提取满足条件的数据并生成新的文件
9 1
|
6天前
|
SQL 数据采集 数据挖掘
构建高效的Python数据处理流水线:使用Pandas和NumPy优化数据分析任务
在数据科学和分析领域,Python一直是最受欢迎的编程语言之一。本文将介绍如何通过使用Pandas和NumPy库构建高效的数据处理流水线,从而加速数据分析任务的执行。我们将讨论如何优化数据加载、清洗、转换和分析的过程,以及如何利用这些库中的强大功能来提高代码的性能和可维护性。
|
6天前
|
数据可视化 数据挖掘 BI
【Python】—— pandas 数据分析
【Python】—— pandas 数据分析
21 1
|
6天前
|
数据采集 数据可视化 数据挖掘
如何利用Python中的Pandas库进行数据分析和可视化
Python的Pandas库是一种功能强大的工具,可以用于数据分析和处理。本文将介绍如何使用Pandas库进行数据分析和可视化,包括数据导入、清洗、转换以及基本的统计分析和图表绘制。通过学习本文,读者将能够掌握利用Python中的Pandas库进行高效数据处理和可视化的技能。
|
6天前
|
数据采集 数据可视化 数据挖掘
Python 与 PySpark数据分析实战指南:解锁数据洞见
Python 与 PySpark数据分析实战指南:解锁数据洞见
|
6天前
|
SQL 数据采集 存储
Hive实战 —— 电商数据分析(全流程详解 真实数据)
关于基于小型数据的Hive数仓构建实战,目的是通过分析某零售企业的门店数据来进行业务洞察。内容涵盖了数据清洗、数据分析和Hive表的创建。项目需求包括客户画像、消费统计、资源利用率、特征人群定位和数据可视化。数据源包括Customer、Transaction、Store和Review四张表,涉及多个维度的聚合和分析,如按性别、国家统计客户、按时间段计算总收入等。项目执行需先下载数据和配置Zeppelin环境,然后通过Hive进行数据清洗、建表和分析。在建表过程中,涉及ODS、DWD、DWT、DWS和DM五层,每层都有其特定的任务和粒度。最后,通过Hive SQL进行各种业务指标的计算和分析。
52 1
Hive实战 —— 电商数据分析(全流程详解 真实数据)