原创 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

如果使用默认参数,会把第一行数据对应的列设置为 字段名。比如 2022-03-06,111

df2 = pd.read_csv(StringIO(str2))
df2
1
2
2022-03-06111
02022-03-07115
12022-03-08112
22022-03-09116
32022-03-10117
42022-03-11119

设置 header=None,不设置列名

如果原始数据中没有列名,需要设置 header=None,否则默认 header='infer' 自动推断把第一行的字段设置为列名

df3 = pd.read_csv(StringIO(str2), header=None)
df3
1
2
01
02022-03-06111
12022-03-07115
22022-03-08112
32022-03-09116
42022-03-10117
52022-03-11119

设置列名

# 设置字段名
df3.set_axis(['ds', 'y'], axis='columns', inplace=True)
df3
1
2
3
dsy
02022-03-06111
12022-03-07115
22022-03-08112
32022-03-09116
42022-03-10117
52022-03-11119

reference