import pandas as pd
print(pd.__version__)2.2.3
Tom
January 16, 2024
pandas.read_csvdtype:指定数据类型,比如指定股票代码这一列为 str 类型parse_dates:尝试将某一列解析为日期。设定为 True,默认解析索引。也可以使用列表指定解析某一列data = pd.read_csv("./stocks.csv", parse_dates=[1]) # 解析第二列
data = pd.read_csv("./stocks.csv", pares_dates=["date"]) # 解析 date 列on_bad_lines:{‘error’, ‘warn’, ‘skip’}pandas.DataFrame.renamemapper:mapper 与 axis 搭配使用columns:修改列名index:修改索引inplace:是否原地修改axis| A | B | C | |
|---|---|---|---|
| x | 1 | 2 | 3 |
| y | 2 | 3 | 4 |
| z | 3 | 4 | 5 |
pandas.DataFrame.insertloc:插入的索引位置column:列名value:Scalar/Series/array-like,插入列的内容| A | B | C | |
|---|---|---|---|
| x | 1 | 2 | 3 |
| y | 2 | 3 | 4 |
| z | 3 | 4 | 5 |
pandas.DataFrame.assign| A | B | C | |
|---|---|---|---|
| x | 1 | 2 | 3 |
| y | 2 | 3 | 4 |
| z | 3 | 4 | 5 |
loc/iloc选择已有列名则修改原始数据;新定义列名则插入新的数据
| A | B | C | |
|---|---|---|---|
| x | 1 | 2 | 3 |
| y | 2 | 3 | 4 |
| z | 3 | 4 | 5 |
loc/iloc| A | B | C | |
|---|---|---|---|
| x | 1 | 2 | 3 |
| y | 2 | 3 | 4 |
| z | 3 | 4 | 5 |
pandas.DataFrame.drop| A | B | C | |
|---|---|---|---|
| x | 1 | 2 | 3 |
| y | 2 | 3 | 4 |
| z | 3 | 4 | 5 |
pandas.DataFrame.set_indexkeys:label or array-like or list of labels/arraysdrop:是否删除作为索引的列,默认为 Trueappend:Whether to append columns to existing index, default False.inplacedata = pd.DataFrame(
{"month": [1, 4, 7, 10], "year": [2012, 2014, 2013, 2014], "sale": [55, 40, 84, 31]}
)
data| month | year | sale | |
|---|---|---|---|
| 0 | 1 | 2012 | 55 |
| 1 | 4 | 2014 | 40 |
| 2 | 7 | 2013 | 84 |
| 3 | 10 | 2014 | 31 |
| month | year | sale | |
|---|---|---|---|
| month | |||
| 1 | 1 | 2012 | 55 |
| 4 | 4 | 2014 | 40 |
| 7 | 7 | 2013 | 84 |
| 10 | 10 | 2014 | 31 |
pandas.DataFrame.reset_indexdata = pd.DataFrame(
[("bird", 389.0), ("bird", 24.0), ("mammal", 80.5), ("mammal", 78)],
index=["falcon", "parrot", "lion", "monkey"],
columns=("class", "max_speed"),
)
data| class | max_speed | |
|---|---|---|
| falcon | bird | 389.0 |
| parrot | bird | 24.0 |
| lion | mammal | 80.5 |
| monkey | mammal | 78.0 |
| index | class | max_speed | |
|---|---|---|---|
| 0 | falcon | bird | 389.0 |
| 1 | parrot | bird | 24.0 |
| 2 | lion | mammal | 80.5 |
| 3 | monkey | mammal | 78.0 |
pandas.Series.str.split这个方法我常用在需要从日期中提取年份时,比如:
data = pd.DataFrame(
{
"ticker": ["000001", "000018", "600201"],
"date": ["2018-08-03", "2019-02-12", "2020-12-31"],
},
)
data| ticker | date | |
|---|---|---|
| 0 | 000001 | 2018-08-03 |
| 1 | 000018 | 2019-02-12 |
| 2 | 600201 | 2020-12-31 |
| ticker | date | year | |
|---|---|---|---|
| 0 | 000001 | 2018-08-03 | 2018 |
| 1 | 000018 | 2019-02-12 | 2019 |
| 2 | 600201 | 2020-12-31 | 2020 |
提取年份也可以直接使用字符串切片:
pandas.series.str.zfill在读取股价数据时,有时候股票代码前面的 0 缺失,可以使用这个方法来填充。