脚本专栏 发布日期:2025/2/14 浏览次数:1
本文实例讲述了Python数据分析pandas模块用法。分享给大家供大家参考,具体如下:
pandas10分钟入门,可以查看官网:10 minutes to pandas
也可以查看更复杂的cookbook
常规导入方式:
import pandas as pd import numpy as np import matplotlib.pyplot as plt
ser1 = pd.Series(range(10,15),index=list('ABCDE')) print(ser1) # 下标和索引等同 print(ser1['A']) print(ser1[0])
输出:
A 10
B 11
C 12
D 13
E 14
dtype: int64
10
10
取连续多个数据时,下标取值不包含结束位置,索引切片包括结束位置
print(ser1['A':'D']) print(ser1[0:3])
输出:
A 10
B 11
C 12
D 13
dtype: int64
A 10
B 11
C 12
dtype: int64
取多个数据、条件筛选(布尔索引)
# 注意里面是一个列表 print(ser1[[0,1,3]]) # 布尔索引 print(ser1[(ser1>12)&(ser1<15)])
DataFrame是二维标记数据结构。 您可以将其视为电子表格或SQL表,或Series对象。 它通常是最常用的pandans对象。 像Series一样,DataFrame接受许多不同种类的输入:
df1 = pd.DataFrame(np.random.randint(10,50,(3,4)), - index=list('ABC'),columns=list('abcd'))
取单行或单列数据,取单个数据
# 列取值,取出的是一个series对象 print(df1['a']) print(df1['a'].values) # 取出一行数据的某一行数据,也就是单个数据 print(df1['a']['B']) # 这两个一样 print(df1['a'][1])
取不连续多列,取连续多列(默认不支持连续,需要高级索引)
# 取不连续多列 print(df1[['a','c']])
行索引,可以直接切片,但是默认不能不连续多行取值,下标同理
print('行索引取值##############') print(df1['A':'A']) # 取连续多行就是df1['A':'C']
一般情况用于DataFrame,这里直接略过Series
df1 = pd.DataFrame(np.random.randint(10,50,(5,4)), index=list('ABCDE'),columns=list('abcd')) # 取单行,类型是series print(df1.loc['A']) print(type(df1.loc['A'])) # 取连续多行,类型是DataFrame print(df1.loc['A':'C']) # 如果没有index索引就用下标,可以取连续多行连续多列 print(df1.loc['A':'D','a':'c']) # 取不连续多行不连续多列 print(df1.loc[['A','C'],['a','c']])
iloc是下标和lo用法一样,但是下标索引左闭右开,loc是包括最后一位
# DataFrame print(df1.iloc[0:2, 0]) # 注意和df1.loc['A':'C', 'a']的区别 print(df1.loc['A':'C', 'a'])
博主使用的pandas 0.24.2版本已经弃用.ix了(warning但还能使用),所以也就不写了
1
2
增加一行数据
1.df1.loc[‘D'] = [1,2,3,4,5] 2.df1.loc[‘D'] = [np.random.randint(10,20)]
增加一列数据
df1.
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。