Numpy Pandas DataFrame 数据处理

目录

Numpy

操作指令

np.delete(array,obj,axis)

np.nuique()

set()

np.array.all() 、np.array.any()

np.delete()

Pandas

操作指令

添加新列+lambda

处理NaN值

读取表格

获取值df.columns.values、df.index.values

 批量处理apply()

DataFrame

函数汇总

iterrows()  遍历每行数据

df.drop()  删除指定行/列数据


Numpy

操作指令

  • np.delete(array,obj,axis)

array:需要处理的矩阵

obj:需要处理的位置(索引),比如取0或1就代表要删除的第一行或者第二行

axis:

如果输入为None:array会先按行展开,然后按照obj,删除对应这个索引位置的数(索引从0开始),返回一个行矩阵。

如果输入为0:按行删除

如果输入为1:按列删除

  • np.nuique()

对于一维数组或者列表,np.unique() 函数 去除其中重复的元素 ,并按元素 由小到大 返回一个新的无元素重复的元组或者列表

set()

set是一个不允许内容重复的组合,而且set里的内容位置是随意的,所以不能用索引列出。可进行关系测试,删除重复数据,还可以计算交集、差集、并集

np.array.all() 、np.array.any()

all()判断整个数组中的元素的值是否全部满足条件,如果满足条件返回True,否则返回False

np.array.any()是操作,任意一个元素为True,输出为True

np.delete()

array:需要处理的矩阵

obj:需要处理的位置,比如要删除的第一行或者第一行和第二行

axis:

如果输入为None:array会先按行展开,然后按照obj,删除第obj-1(从0开始)位置的数,返回一个行矩阵。

如果输入为0:按行删除

如果输入为1:按列删除



Pandas

操作指令

  • 添加新列+lambda

df = pd.DataFrame({'a':np.random.randn(6),
                   'b':np.random.randn(6),
                   'c':np.random.randn(6)})
def my_test(a,b):
    return a+b

#添加新列'value'
df['value'] = df.apply(lambda row : my_test(row['a'],row['c']),axis=1)

  • 处理NaN值

丢掉所在行

df.dropna(axis=0,how='any')

 一行全为NaN才丢掉

df.dropna(axis=0,how='all')

 对NaN处的数据进行填补

df.fillna(value=0)

判断是否有数据缺失,以表格形式返回true/false

df.isnull()

检查一个表格中是否存在NaN值

df.any(df.isnull() == True)

  • 读取表格

import pandas as pd

data = pd.read_csv('表格名.csv')#会自动加索引

  • 获取值df.columns.values、df.index.values

获取列名: df.columns.values

获取 index (行索引)名: df.index.values

获取行数: df.shape[0]

获取列数 :df.shape[1]

获取具体的某一个值: df.iloc[i, j]

  •  批量处理apply()

apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwds):

func: 应用于每一列或每一行的函数

axis: 设置批处理函数按列还是按行应用,0或index表示按列应用函数,1或columns表示按行应用函数,默认值为0。

raw: 设置将列/行作为Series对象传递给函数,还是作为ndarray对象传递给函数。raw是bool类型,默认为False。

result_type: 当axis=1时,设置返回结果的类型和样式,支持{‘expand’, ‘reduce’, ‘broadcast’, None}四种类型,默认为None。
expand: 列表式的结果将被转化为列。

reduce: 如果可能的话,返回一个Series,而不是返回列表式的结果。这与expand相反。

broadcast: 结果将被广播成DataFrame的原始形状,DataFrame的原始索引和列将被保留。

None: 结果取决于应用函数的返回值,列表式的结果将以Series形式返回,如果应用函数返回Series将会扩展到列。

pd.read_csv()读取表格

pd.read_csv(路径,nrows=35000)#只读取前35000行

DataFrame

函数汇总

iterrows()  遍历每行数据

df.iterrows()返回所有的行索引,以及该行的所有内容

for index, row in curgroup.iterrows():#index是行索引,row是每行的数据

        row["laneletId"]#取到row中某一单元格的值

        

df.drop()  删除指定行/列数据

# 删除指定的一行,inplace=True表示对原数据进行修改
df.drop(index=row_index, axis=0, inplace=True)
 
# 删除指定的一列
df.drop(columns=column_label, axis=1, inplace=True)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值