原创 dataframe 设置字段名
场景
在预测场景中,期望用户在表单中不需要填写列的字段名(ds, y),由后台程序自动命名,降低用户的使用成本。同时,ds、y 这2列的间隔可以是空白字符或 逗号,方便用户直接从 Excel 拷贝或 csv 导出。
原始数据
import pandas as pd
from io import StringIO
str2 = """
2022-03-06,111
2022-03-07,115
2022-03-08,112
2022-03-09,116
2022-03-10,117
2022-03-11,119"""
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
如果使用默认参数,会把第一行数据对应的列设置为 字段名。比如 2022-03-06,111
df2 = pd.read_csv(StringIO(str2))
df2
1
2
2
2022-03-06 | 111 | |
---|---|---|
0 | 2022-03-07 | 115 |
1 | 2022-03-08 | 112 |
2 | 2022-03-09 | 116 |
3 | 2022-03-10 | 117 |
4 | 2022-03-11 | 119 |
设置 header=None,不设置列名
如果原始数据中没有列名,需要设置 header=None,否则默认 header='infer' 自动推断把第一行的字段设置为列名
df3 = pd.read_csv(StringIO(str2), header=None)
df3
1
2
2
0 | 1 | |
---|---|---|
0 | 2022-03-06 | 111 |
1 | 2022-03-07 | 115 |
2 | 2022-03-08 | 112 |
3 | 2022-03-09 | 116 |
4 | 2022-03-10 | 117 |
5 | 2022-03-11 | 119 |
设置列名
# 设置字段名
df3.set_axis(['ds', 'y'], axis='columns', inplace=True)
df3
1
2
3
2
3
ds | y | |
---|---|---|
0 | 2022-03-06 | 111 |
1 | 2022-03-07 | 115 |
2 | 2022-03-08 | 112 |
3 | 2022-03-09 | 116 |
4 | 2022-03-10 | 117 |
5 | 2022-03-11 | 119 |