Home Pandas知识点
Post
Cancel

Pandas知识点

前言

每天起床刷一刷

显示前三行

Pandas常用取子集方法总结表

方法作用示例备注
df.head()取前5行df.head()默认前5行,可以指定数量,如 df.head(10)
df.tail()取最后5行df.tail(3)取最后3行
df.sample(n)随机抽取n行df.sample(2)乱序抽取,默认不放回,可设置 replace=True
df.iloc[i]按位置取第i行df.iloc[0]第0行,注意是位置,不是标签
df.iloc[i:j]按位置取i到j-1行df.iloc[1:4]类似 Python 切片,左闭右开
df.loc[label]按索引标签取行df.loc[2]如果 DataFrame 索引是自定义的名字,用 .loc[]
df[:n]快速取前n行(切片)df[:5]不推荐,容易出错,还是用 .head()更稳
df.query('条件')根据条件筛选行df.query('age > 30')适合写复杂条件,且更简洁
df[df['列名'] > 值]按列取子集(布尔索引)df[df['age'] > 30]最常用的条件过滤方式

表格四则运算

运算符号Python常规用法Pandas中推荐用法说明
加法+a + bdf['col'].add(x)逐元素相加
减法-a - bdf['col'].sub(x)逐元素相减
乘法*a * bdf['col'].mul(x)df['col'].multiply(x)逐元素相乘
除法/a / bdf['col'].div(x)df['col'].divide(x)逐元素相除

创建新列

  1. 直接赋值
    1
    
    df['new_col'] = df['old_col'] * 2
    
  2. 赋固定值
    1
    2
    
    df['status'] = 'active'
    df['flag'] = 1
    
  3. 根据多列计算生成
    1
    2
    
    df['ratio'] = df['col1'] / df['col2']
    df['full_name'] = df['first'] + ' ' + df['last']
    
  4. 通过 apply() 添加复杂逻辑列 ```bash df[‘category’] = df[‘score’].apply(lambda x: ‘pass’ if x > 60 else ‘fail’)
1
2
3
4
5
5. 使用 assign()(链式调用)
```bash
df = df.assign(bonus=lambda x: x['salary'] * 2)

创建新行

  1. 使用 loc[] / iloc[] 手动添加一行(指定索引) ```bash df.loc[len(df)] = [‘Tom’, 25000]
1
2
3
4
5
2. 使用 append() 添加单行或多行(已弃用,改用 concat)
```bash
new_row = pd.DataFrame([{'name': 'Tom', 'salary': 25000}])
df = pd.concat([df, new_row], ignore_index=True)

  1. 创建 DataFrame 时直接包含所有行 ```bash df = pd.DataFrame([ {‘name’: ‘Alice’, ‘salary’: 5000}, {‘name’: ‘Bob’, ‘salary’: 6000} ])

```

This post is licensed under CC BY 4.0 by the author.

杂七杂八的语言

变长子数组求和