数据分析 | pandas

主要数据结构:

Series:

Series 是一种类似于 Numpy 中一维数组的对象,它由一组任意类型的数据以及一组与之相关的数据标签(即索引)组成。

python 复制代码
import pandas as pd

print(pd.Series([2, 4, 6, 8]))
print(pd.Series([2, 4, 6, 8], index=['a', 'b', 'c', 'd']))
# 输出
# 0    2
# 1    4
# 2    6
# 3    8
# dtype: int64
# a    2
# b    4
# c    6
# d    8
# dtype: int64

还可以直接使用字典同时创建带有自定义数据标签的数据,pandas 会自动把字典的键作为数据标签,字典的值作为相对应的数据。

访问 Series 里的数据的方式,和 Python 里访问列表和字典元素的方式类似,也是使用中括号加数据标签的方式来获取里面的数据。

python 复制代码
import pandas as pd

s1 = pd.Series([2, 4, 6, 8])
s2 = pd.Series({'a': 2, 'b': 4, 'c': 6, 'd': 8})

print(s1[0])
#输出:2
print(s2['b'])
#输出:4

数学中的四则运算在 pandas 中都有一一对应的方法,它们的用法都是类似的:

python 复制代码
import pandas as pd

s1 = pd.Series({'辣条': 14, '面包': 7, '可乐': 8, '烤肠': 10})
s2 = pd.Series({'辣条': 20, '面包': 3, '雪碧': 13, '泡面': 6})

print(s2.sub(s1,fill_value=0))# fill_value 为数据缺失时的默认值

#输出:
#可乐    -8.0
#泡面     6.0
#烤肠   -10.0
#辣条     6.0
#雪碧    13.0
#面包    -4.0
#dtype: float64

DataFrame:

DataFrame 是二维数据

python 复制代码
import pandas as pd
#调用 pd.set_option() 使表格对齐显示
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)

df = pd.DataFrame({'辣条': [14, 20], '面包': [7, 3], '可乐': [8, 13], '烤肠': [10, 6]})
print(df)

#输出:
#    辣条   面包  可乐   烤肠
#0    14     7     8    10
#1    20     3    13     6

列的查改增删:

查看列:

python 复制代码
import pandas as pd

df = pd.DataFrame({'辣条': [14, 20], '面包': [7, 3], '可乐': [8, 13], '烤肠': [10, 6]})
print(df['可乐'])
#输出:
#0     8
#1    13
#Name: 可乐, dtype: int64
print(df[['可乐', '辣条']])
#输出:
#    可乐   辣条
#0     8    14
#1    13    20

修改列:

python 复制代码
df['可乐'] = [18, 23]
print(df)
#输出:
#    辣条   面包   可乐  烤肠
#0    14     7    18    10
#1    20     3    23     6

新增列:

python 复制代码
df['糖果'] = [3, 5]
print(df)
#输出:
#    辣条   面包  可乐   烤肠   糖果
#0    14     7     8    10     3
#1    20     3    13     6     5

删除列:

python 复制代码
df.drop('面包', axis=1, inplace=True)
print(df)
# 或者 print(df.drop('面包', axis=1))
#输出:
#    辣条   可乐  烤肠
#0    14     18    10
#1    20     23     6

读取表格文件进行分析:

数据筛选:

给数据打标签:

行的查改增删:

查看行:

python 复制代码
import pandas as pd

df = pd.DataFrame({'辣条': [14, 20], '面包': [7, 3], '可乐': [8, 13], '烤肠': [10, 6]})
print(df.loc[0])
#输出:
#辣条    14
#面包     7
#可乐     8
#烤肠    10
#Name: 0, dtype: int64

# 行分片
print(df.loc[0:1, '辣条'])

# 列分片
print(df.loc[0, '辣条':'可乐'])

# 同时分片
print(df.loc[0:1, '辣条':'可乐'])

#输出:
#0    14
#1    20
#Name: 辣条, dtype: int64

#辣条    14
#面包     7
#可乐     8
#Name: 0, dtype: int64

#    辣条   面包  可乐
#0    14     7     8
#1    20     3    13

除了比较常用的 loc 之外,还能使用 iloc。用法和 loc 一样,区别在于 loc 使用的参数是索引,而 iloc 的参数是位置,即第几行。

python 复制代码
import pandas as pd

data = {
  '辣条': [14, 20, 12, 15, 17],
  '面包': [7, 3, 8, 3, 9],
  '可乐': [8, 13, 23, 12, 19],
  '烤肠': [10, 6, 21, 24, 18]
}
df = pd.DataFrame(data, index=['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04', '2020-01-05'])
print(df.iloc[:3])  # :3 表示 0、1、2 前三个

#输出:
#             辣条   面包  可乐   烤肠
#2020-01-01    14     7     8    10
#2020-01-02    20     3    13     6
#2020-01-03    12     8    23    21

修改行:

python 复制代码
df.loc[0] = 1  # 第一行都改成 1
print(df)

#输出:
#    辣条   面包  可乐   烤肠
#0     1     1     1     1
#1    20     3    13     6

新增行:

python 复制代码
# 添加第三行,全为 1
df.loc[2] = 1
# 添加第四行,分别为 1 2 3 4
df.loc[3] = [1, 2, 3, 4]
print(df)

#输出:
#    辣条   面包  可乐   烤肠
#0    14     7     8    10
#1    20     3    13     6
#2     1     1     1     1
#3     1     2     3     4

删除行:

python 复制代码
df.drop(0, inplace=True)  # 删除第一行
print(df)
# 或者 print(df.drop(0))

数据清洗:

相关推荐
m0_694845572 小时前
Dify部署教程:从AI原型到生产系统的一站式方案
服务器·人工智能·python·数据分析·开源
MediaTea3 小时前
Pandas 应用实例:多工具协同与数据可视化
信息可视化·pandas
李昊哲小课4 小时前
Python办公自动化教程 - 第7章 综合实战案例 - 企业销售管理系统
开发语言·python·数据分析·excel·数据可视化·openpyxl
李昊哲小课4 小时前
Python办公自动化教程 - 第5章 图表创建 - 让数据可视化
python·信息可视化·数据分析·数据可视化·openpyxl
编程界一哥5 小时前
英雄联盟报错丢失xxx.dll快速修复工具:哪个安全有效?(2026版)
数据挖掘
涛声依旧393166 小时前
Python项目实战:学生信息管理系统
开发语言·python·数据挖掘
源码之屋10 小时前
计算机毕业设计:Python出行数据智能分析与预测平台 Django框架 可视化 数据分析 PyEcharts 交通 深度学习(建议收藏)✅
人工智能·python·深度学习·数据分析·django·汽车·课程设计
wang_yb11 小时前
理论都会,实战就废?7个分析模板,帮你打通任督二脉
数据分析·databook
databook11 小时前
理论都会,实战就废?7个分析模板,帮你打通任督二脉
python·数据挖掘·数据分析
数据科学小丫12 小时前
数据分析利器 Pandas :apply() 方法 + map() 配对 + 计算描述统计 + 协方差和相关性 + 异常值处理常用方法(基于 python )
python·数据分析·numpy·pandas