繁体   English   中英

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

[英]Pandas: Creating new data frame from only certain columns

我有一个带有测量值的 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

至 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  |        ....       |        ....    

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

谢谢 !!!

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

csv2 = csv1[['Acceleration', 'Pressure']].copy()

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

csv2 = csv1.loc[:, ['Acceleration', 'Pressure']]
  • .loc[]有助于使子集化操作保持显式和一致。

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

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

您的平均方法可以 go 代替“method_to_obtain_avg” ,然后您可以获得如下子集:

csv2 = csv1.method_to_obtain_avg()[["Accelaration", "Pressure"]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM