pandas

Series
创建
import pandas as pd
import numpy as np

c1 = pd.Series(np.arange(4), index=list("abcd"))

c2 = pd.Series({"name": "ccb", "age": 22, "tel": "10086"})
复制代码
切片
# 取索引
c2.index  

# 取值
c2.values 

# 通过键获取值
c2["name"]    

# 获取不连续数据
c2[[1, 2]]    

# 获取不连续数据
c2[["name", "tel"]] 
复制代码
DataFrame
创建
df = pd.DataFrame(np.arange(12).reshape(3, 4), index=list("abc"), columns=list("wxyz"))
复制代码
# 效果
       w  x   y   z
    a  0  1   2   3
    b  4  5   6   7
    c  8  9  10  11
复制代码
切片
# 取第一行
df[:1]  

# 取前两行
df[:2]  

# 取 x 列
df["x"] 

# 设置索引的值
df.index=["a","c"] 

# 设置某一列为索引
df.set_index("a")  

# 设置a c两列为索引
df.set_index(["a","c"]) 

# 从复合索引中取值
s1["a","b"] # Series
df.loc["a"].["b"] # DataFrame

# 从里层索引开始选择,交换里外层索引位置
df.swaplevel() 
复制代码
  • loc [ ]
# 通过标签索引获取数据
s = df.loc["a":"b", :]  
s1 = df.loc[["a", "c"], "w"]  
s2 = df.loc["b", ["x", "y"]] 
复制代码
  • iloc [ ]
# 通过位置索引获取数据
m1 = df.iloc[0:2, :]  
m2 = df.iloc[[1,2],[0,2]] 
复制代码
  • 布尔索引
import pandas as pd

# 选择dog的名字使用次数超过700,并且名字的字符串长度大于4的dog名字
dn = pd.read_csv("./dogNames2.csv")

uu = dn[(dn["Row_Labels"].str.len() > 4) & (dn["Count_AnimalName"] > 700)]
print(uu)
复制代码
方法
df.info()

df.values

df.index

df.columns

df.shape  # (3,4) 3行4列

df.shape[0] # 3行

df.shape[1] # 4列

df.head(3) 

df.tail(3) 

df["w"].max()

df["w"].min()

df["w"].median()

df["w"].argmax() # 最大值位置

df["w"].argmin() # 最小值位置

df.sort_values(by="age", ascending=False) # 降序排序
复制代码
缺失数据处理
pd.isnull(t)

pd.notnull(t)
复制代码
# 填充
t["w"].fillna(t["w"].mean())
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值