Python数据分析三剑客之Pandas

处理数值型以外的其他类型数据。

常用类: Series,DataFrame

是一种类似于一维数组的对象,有两部分组成:

values:一组数据(ndarray类型)

index:相关的数据索引标签

Series的创建:

a = Series(data=[1, 2, 3, "Four"])

b = Series(data=np.random.randint(0, 100, size=(3, )))
// 注:用numpy创建时数组必须为一维

a = Series(data=[1, 2, 3, "Four"], index=['a', 'b', 'c', 'd'])

dic = {'语文': 100, '数学': 99, '理综': 250}
c = Series(data=dic)

Series的索引和切片:


c.语文
// 100

c[0:2]
//
语文    100
数学     99
dtype: int64

Series常用属性:

Series常用方法:

a1 = Series(data=[1, 2, 3], index=['a', 'b', 'c'])
a2 = Series(data=[1, 2, 3], index=['a', 'd', 'c'])
a = a1 + a2
//
a    2.0
b    NaN
c    6.0
d    NaN
dtype: float64

a.isnull()
//
a    False
b     True
c    False
d     True
dtype: bool

是一个【表格型】数据结构,DataFrame由按一定顺序排列的多列数据组成。设计初衷是将Series 的使用场景从一维拓展到多维。

既有 行索引index又有 列索引columns,值values

DataFrame的创建:


df = DataFrame(data=np.random.randint(0, 100, size=(6, 4)))
dic = {'name': ['zhangsan', 'lisi', 'wanglaowu'], 'salary': [1000, 2000, 3000]}
df = DataFrame(data=dic, index=['a', 'b', 'c'])

//
        name  salary
a   zhangsan    1000
b       lisi    2000
c  wanglaowu    3000

DataFrame属性:

示例创建成绩表:

dic = {'张三': [150, 150, 150, 300], '李四': [100, 100, 100, 100]}
df = DataFrame(data=dic, index=['语文', '数学', '英语', '理综'])

//
     张三  李四
语文  150   0
数学  150   0
英语  150   0
理综  300   0

DataFrame索引操作:

df = DataFrame(data=np.random.randint(0, 100, size=(6, 4)), columns=['a', 'b', 'c', 'd'])
//
    a   b   c   d
0  45  54  25  94
1  85  22  16  65
2  14  23  74  54
3  96  33  45  61
4  80   6   1  19
5  67  87  19   7
df['a']
//
0    45
1    85
2    14
3    96
4    80
5    67
Name: a, dtype: int32

df['a', 'c']
df.iloc[0]
//
a    45
b    54
c    25
d    94
Name: 0, dtype: int32

df.iloc[[0, 3, 5]]
//
    a   b   c   d
0  45  54  25  94
3  96  33  45  61
5  67  87  19   7
df.iloc[0, 'a']
df.iloc[0, 2]

df.loc[0, 'a']
df.loc[0, 2]

df.iloc[[0, 3, 5], 2]
//
0    25
3    45
5    19
Name: c, dtype: int32

DataFrame切片操作:

df[0:2]
//
    a   b   c   d
0  45  54  25  94
1  85  22  16  65
df.iloc[:, 0:2]
//
    a   b
0  45  54
1  85  22
2  14  23
3  96  33
4  80   6
5  67  87

DataFrame运算:同Series

示例:

dic = {'张三': [150, 150, 150, 300], '李四': [0, 0, 0, 0]}
df = DataFrame(data=dic, index=['语文', '数学', '英语', '理综'])
qz = df
qm =df
mean = (qz + qm) / 2
//
       张三   李四
语文  150.0  0.0
数学  150.0  0.0
英语  150.0  0.0
理综  300.0  0.0

zs = qz.loc['数学', '张三']
// 150

qm['李四'] += 100
//
       张三    李四
语文  150.0  100.0
数学  150.0  100.0
英语  150.0  100.0
理综  300.0  100.0

qz += 10
//
     张三  李四
语文  160  10
数学  160  10
英语  160  10
理综  310  10

时间数据类型的转换: pd.to_datetime()

dic = {'time': ['2010-10-10', '2011-11-20', '2020-01-10'], 'temp': [33, 31, 30]}
df = DataFrame(data=dic)
df['time'] = pd.to_datetime(df['time'])
//
time    datetime64[ns]

将某一列作为某一列的行索引: set_index()

df.set_index('time')

//
            temp
time
2010-10-10    33
2011-11-20    31
2020-01-10    30

Original: https://blog.csdn.net/qq_40202164/article/details/125548247
Author: GODamnbit
Title: Python数据分析三剑客之Pandas

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/676802/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球