pandas

Pandas的NaN和numpy的np.nan是一回事

创建Series

Series是带标签的一维数组,Dataframe是Series的二维容器

import pandas as pd
t = pd.Series([1,1,1,1,1], index=...)
t.astype(float)

for i in t.index:
    print(i)

type(t.index)
>>> pandas.indexes.base.Index
type(t.values)
>>> numpy.ndarray

pandas 不同类型存储为object

读取数据

df = pd.read_csv(...)

创建DataFrame

df = pd.DataFrame(np.arange(4),reshape=(2,2),index=list('ab'),columns=list('cd'))

pandas

提取

df[:2]                # 取行用数字
df['Name']            # 取列用字符串
df[:2]['Name']        # 取行列

df.loc['a','z']       # 取行:标签索引
df.loc[:,['a','z']]   # 取列:标签索引
df.iloc[1]            # 取行:位置索引
df.iloc[:,1]          # 取列:位置索引

筛选

df.mask(t>10)         # 不符合条件为nan
df.where(t>10)        # 不符合条件为nan
df.where(t>10,0)      # 不符合条件为0
df[df['count']>100]

常用函数

df.ndim        # 维度
>>> 2
df.head/tail(5)
df.info        # 概览
df.describe()  # 统计

df = df.sort_values(by=列名,ascending=False)    # 排序

df['Age'].mean()    # 空值不参与计算

# tolist函数
df.info().str.split('/').tolist()
len(set(df['Name'].tolist()))        # 统计名字个数一
len(df['Name'].unique())             # 统计名字个数二

tmp = df['Name'].str.split(',').tolist()    # 统计名字个数三
human = [i for j in tmp for i in j]
# human = np.array(tmp).flatten().tolist() 不一定成功
num = len(set(human))

pandas str方法的使用_Chipeyown的博客-CSDN博客_pandas str

pandas

NaN操作

pd.isnull(df)            # 相当于numpy的isnan
pd.notnull(df)

# 删除空值行
df[pd.notnull(df['Name'])]
df.dropna(axis=0, how='any/all')
df.fillna(0)

df['Age'] = df['Age'].fillna(df['Age'].mean())

# 变为空值
df[1]['Age'] = np.nan
上一篇:vue $set $nextTick()


下一篇:短视频直播系统,软件自带的拦截器,拦截功能