记录从准研一假期自学PYTHON的全过程day35

86 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第25天,点击查看活动详情

也是暑假自学python的第35天

今天继续昨天的学习:

今天才学会可以修改复制上的图片大小,一般要缩小50%,以前缩写文章不会弄图片大小,搞得图片很大很影响美观,这次就学会了!

pd的函数学习

3.按值排序:
import random
l=[random.randint(0,100) for i in range(24)]
df4 = pd.DataFrame(np.array(l).reshape(6,4))
print(df4.values)
print('-'*50)
print(df4)
print('-'*50)
#按轴零排序,by后是列名
df4_vsort = df4.sort_values(by=3,axis=0, ascending=False) #寻找的是columns里的3
print(df4_vsort)
#按轴1排序,by后行索引名
df4_vsort = df4.sort_values(by=3,axis=1, ascending=False) #寻找的是index里的3
print(df4_vsort)

输出的结果如下:

image.png

ascending表示升序排列,默认为true,如果改为false,则表示降序排序

ascending=False
4.pd处理缺失数据

如果遇到有缺失值的话,使用dropna方法会返回一个新的df,并且将含有nan的那一行全部删除

df_data = pd.DataFrame([np.random.randn(3), [1., 2., np.nan],
                       [np.nan, 4., np.nan], [1., 2., 3.]])
print(df_data.head())
print(df_data.dropna(inplace=True))
print(df_data.head())

具体输出的结果如下:

image.png

默认有一个为空值,那么一整个行就会被删除,如果想要删除这一行,具体的显示如下:

print(df_data.dropna(axis=1))  #某列由nan就删除该列

如果遇到要添加数值的情况:

需要使用到fillna接口:

df_data = pd.DataFrame([np.random.randn(3), [1., 2., np.nan],
                       [np.nan, 4., np.nan], [1., 2., 3.]])
print(df_data.head())
print(df_data.iloc[:,0].fillna(0.))

df_data.iloc[:,0].fillna(-100.)这句话表示的含义是取到第0列,将其内部缺少的值填补为0,输出的结果如下:

image.png

层级索引

多层级的索引,可以将数据进行分组:

主要是使用到了多层级索引的接口: pd.MultiIndex.from_arrays

import pandas as pd
import numpy as np
index1 = pd.MultiIndex.from_arrays([['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'd', 'd', 'd'],[0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]], names=['cloth', 'size'])

ser_obj = pd.Series(np.random.randn(12),index=index1)
print(ser_obj)
print(type(ser_obj))
print(type(ser_obj.index))
print(ser_obj.index)
print(ser_obj.index.levels)

具体的索引就是这样子:

a a a b b b c c c

0 1 2 0 1 2 0 1 2

写法为: [['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'd', 'd', 'd'],[0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]]

输出的结果如下:

image.png

打印其索引:

print(ser_obj.index)

输出的结果如下:

image.png

对于层级索引取数据:

print(ser_obj['c'])
image.png
print(ser_obj['a', 2])
image.png
print(ser_obj)
print('-'*50)
print(ser_obj[:, 2])
image.png

层级索引学习结束。