python - 使用自定义函数后如何存储新的数据框?

标签 python pandas dataframe user-defined-functions

我刚刚开始使用用户定义函数,所以这可能不是一个非常复杂的问题,请原谅我。

我有一些数据帧,它们都有一个名为“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
  • 将此类函数设为通用是一种很好的做法。例如,您的输入和输出列名称可以是设置了默认值的参数。
  • Pandas 优惠 pd.DataFrame.pipe以促进方法链接。
  • 您的函数名称不应与 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)

这是一个简单的示例,可能不需要用户定义的函数。但是,当您编写更复杂的函数时,上述建议可能会有所帮助。

关于python - 使用自定义函数后如何存储新的数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51208000/

相关文章:

python - 为什么 DataFrame.nlargest 不对结果进行排序?

pandas - 如何计算 Pandas 数据帧组中索引或空值的数量

python - 从 Pandas 的日期列中查找特定日期的日期差异

python - 使用滑动窗口和转置进行分组

python Pandas : multi-index unstack taking forever

python - 以编程方式将 LaTeX 代码转换/解析为纯文本

python - 查找 GeoTiff 图像中每个像素的纬度/经度坐标

python - Pandas :使用元组索引将数据从两个数据帧移动到另一个数据帧

python - pandas 在 to_csv 中转义回车

r - 如何使用预定义布局保存 igraph 对象的边列表?