python pandas学习笔记

1. 创建一个空的DataFrame

df_empty = pd.DataFrame(columns=['A', 'B', 'C', 'D'])

2.分组

使用聚合函数时,可以不生成索引。

df.groupby(['a','b'],as_index=False).mean()

3.转换

聚合只是其中的一种方法,转换也是。

4.层次化索引选取

根据索引获取数据。因为现在有两层索引,当通过外层索引获取数据的时候,可以直接利用外层索引的标签来获取。当要通过内层索引获取数据的时候,在list中传入两个元素,前者是表示要选取的外层索引,后者表示要选取的内层索引。

# 外层选取
print(ser_obj['c'])
# 内层选取
print(ser_obj[:, 1])
# 外层+内层选取
print(ser_obj['c', 2])

可以利用索引来筛选数据:可以使用loc, iloc, query

#使用query

arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'], ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]
index = pd.MultiIndex.from_arrays(arrays, names=['first', 'second'])

df = pd.DataFrame({'A': [1, 1, 1, 1, 2, 2, 3, 3], 'B': np.arange(8)},index=index)
print(df)
print(df.query('second=="one"'))

5.删除数据

(1)drop函数的用法

pandas.DataFrame.drop

DataFrame.drop(labels=Noneaxis=0index=Nonecolumns=Nonelevel=Noneinplace=Falseerrors='raise')

Drop specified labels from rows or columns.

作用删除特定行或者列: 使用index=labels相当于同时指定 (labels, axis=0) ,使用columns=labels,相当于同时指定(labels, axis=1)。

(2)del函数的用法,这个函数比较简单一些

具体的用法如下:

del df['A']  # 删除A列,会就地修改

(3)可能drop函数相关的函数还有一些dropna() 和drop_duplicated() 函数

pandas.DataFrame.dropna

DataFrame.dropna(axis=0how='any'thresh=Nonesubset=Noneinplace=False)[source]

how {‘any’, ‘all’}, default ‘any’

Determine if row or column is removed from DataFrame, when we have at least one NA or all NA.

  • ‘any’ : If any NA values are present, drop that row or column.

  • ‘all’ : If all values are NA, drop that row or column.

subset array-like, optional

  • Labels along other axis to consider, e.g. if you are dropping rows these would be a list of columns to include.

可以使用subset选择特定几列有空值的进行删除

df = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],
                   "toy": [np.nan, 'Batmobile', 'Bullwhip'],
                   "born": [pd.NaT, pd.Timestamp("1940-04-25"),
                            pd.NaT]})

df
       name        toy       born
0    Alfred        NaN        NaT
1    Batman  Batmobile 1940-04-25
2  Catwoman   Bullwhip        NaT

df.dropna(subset=['name', 'toy'])
       name        toy       born
1    Batman  Batmobile 1940-04-25
2  Catwoman   Bullwhip        NaT

 6.python 获取一维或者二维数组的最大(最小)N个值

import heapq
 
a=[43,5,65,4,5,8,87]

re1 = heapq.nlargest(3, a) #求最大的三个元素,并排序
re2 = map(a.index, heapq.nlargest(3, a)) #求最大的三个索引    nsmallest与nlargest相反,求最小

print(re1)
print(list(re2)) #因为re2由map()生成的不是list,直接print不出来,添加list()就行了
import heapq
import numpy as np
import random

a = np.random.randint(50,size= (4,5))
a = np.array(a)
print(a)

lists = [[] for i in range(4)]
for i in range(len(a)):
    lists[i] = heapq.nlargest(3, a[i])
print(lists)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值