熊猫:仅从某些列创建新数据框

Val*_*ess 4 python csv pandas

我有一个带测量值的csv文件,我想用小时平均值和标准偏差创建一个新的csv文件.但仅适用于某些列.

例:

csv1:

YY-MO-DD HH-MI-SS_SSS    |     Acceleration  |        Lumx     |    Pressure
2015-12-07 20:51:06:608  |        22.7       |        32.3     |     10
2015-12-07 20:51:07:609  |        22.5       |        47.7     |     15
Run Code Online (Sandbox Code Playgroud)

到csv 2(仅适用于压力和加速度:

 YY-MO-DD HH-MI-SS_SSS       | Acceleration avg  |   Pressure avg
    2015-12-07 20:00:00:000  |        22.6       |        12.5     
    2015-12-07 21:00:00:000  |        ....       |        ....    
Run Code Online (Sandbox Code Playgroud)

现在我有一个想法(感谢本网站上的人)关于如何计算平均值 - 但我在创建一个包含几列计算的新的较小数据框时遇到了麻烦.

谢谢 !!!

su7*_*u7k 8

你应该像下面那样制作更小的df,

csv2 = csv1[['Acceleration', 'Pressure']].copy()
Run Code Online (Sandbox Code Playgroud)

并且可以处理csv2.(你说你有关于平均计算的想法)FYI,.copy()如果你确定视图与副本,可以省略.


lee*_*sej 5

csv2 = csv1.loc[:, ['Acceleration', 'Pressure']]
Run Code Online (Sandbox Code Playgroud)
  • .loc[] 有助于保持子集操作的明确和一致。

  • .loc[] 始终返回一个副本,因此永远不会修改原始数据帧。

(有关不同view vs. copy替代方案的进一步讨论和很好的示例,请参阅:Pandas:了解操作何时影响原始数据帧