我刚刚开始使用用户定义函数,所以这可能不是一个非常复杂的问题,请原谅我。
我有一些数据帧,它们都有一个名为“interval_time”的列(例如),我想将此列重命名为“Timestamp”。
我知道我可以用这个手动完成此操作;
df = df.rename(index=str, columns={'interval_time': 'Timestamp'})
但现在我想定义一个名为 rename 的函数来为我执行此操作。我已经看到这是有效的;
def rename(data):
print(data.rename(index=str, columns={'interval_time': 'Timestamp'}))
但我似乎无法弄清楚保存重命名的数据框,我已经尝试过这个;
def rename(data):
data = data.rename(index=str, columns={'interval_time': 'Timestamp'})
我正在使用的数据框具有以下形式;
df_scada
interval_time A ... X Y
0 2010-11-01 00:00:00 0.0 ... 396.36710 381.68860
1 2010-11-01 00:05:00 0.0 ... 392.97974 381.40634
2 2010-11-01 00:10:00 0.0 ... 390.15695 379.99493
3 2010-11-01 00:15:00 0.0 ... 389.02786 379.14810
有几点需要注意:
- 你需要使用
return
在你的函数中。
- 使此类函数通用是一种很好的做法。例如,您的输入和输出列名称可以是设置了默认值的参数。
- 熊猫优惠pd.DataFrame.pipe https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.pipe.html以促进方法链接。
- 您不应将函数命名为与 Pandas 方法相同的名称。这只会导致混乱。
将这些元素放在一起:
def rename_col(data, col_in='interval_time', col_out='Timestamp'):
return data.rename(index=str, columns={col_in: col_out})
df = df.pipe(rename_col)
这是一个简单的例子,可能不require用户定义的函数。但是,当您编写更复杂的函数时,上述建议可能会有所帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)