系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 pandas:0.19.2
Part 1:目标
["time", "pos", "value1", "value2", "value3"]
[0,1,2,3,4,5,6,7]
2. 目标:
{'time': 'date', 'pos': 'group', 'value1': 'val1', 'value3': 'val3'}
Df
Part 2:代码
import numpy as np
import pandas as pd
dict_1 = {"time": ["2019-11-02", "2019-11-03", "2019-11-04", "2019-11-05",
"2019-12-02", "2019-12-03", "2019-12-04", "2019-12-05"],
"pos": ["A", "A", "B", "B", "C", "C", "C", "D"],
"value1": [10, 20, 30, 40, 50, 60, 70, 80],
"value2": [20, 30, 40, 50, 60, 70, 80, 90],
"value3": [20, np.nan, 40, 50, np.nan, 70, np.nan, 90]}
df_1 = pd.DataFrame(dict_1, columns=["time", "pos", "value1", "value2", "value3"])
print("原数据", "\n", df_1, "\n")
# 重命名列
df_2 = df_1.rename(columns={'time': 'date', 'pos': 'group',
'value1': 'val1', 'value3': 'val3'})
print("列名重命名", "\n", df_2, "\n")
# 删除列
df_2.drop(['value2'], axis=1, inplace=True)
print("删除列", "\n", df_2, "\n")
# 替换nan
df_2.fillna("yes", inplace=True)
print("替换nan", "\n", df_2, "\n")
代码截图
运行结果
Part 3:部分代码解读
df_1.rename(columns={'time': 'date', 'pos': 'group', 'value1': 'val1', 'value3': 'val3'})
,关键函数df.rename(columns={原列名:新列名, 原列名:新列名})
,通过一个字典的键值对分别表示原列名和新列名。该方法生成了一个新的df,不是直接在原df上进行操作df_2.drop(['value2'], axis=1, inplace=True)
,删除列名为value2的列,axis=1表示按列进行删除,inplace=True
表示对原df进行操作,保留操作后的结果,与第1点的情况不同df_2.fillna("yes", inplace=True)
将nan值用字符串yes进行替换