如何将多个数据帧合并为一个并将其输出到pandas中的csv文件中?

苏维克·雷

我有一个csv文件,如下所示

,date,location,device,provider,cpu,mem,load,drops,id,latency,gw_latency,upload,download,sap_drops,sap_latency,alert_id
0,2018-02-10 11:52:59.342269+00:00,CFE,10.0.100.1,BWE,6.0,23.0,11.75,0.0,,,,,,,,
1,2018-02-10 11:53:04.006971+00:00,CDW,10.0.100.1,GRE,6.0,23.0,4.58,0.0,,,,,,,,
2,2018-02-09 11:52:59.342269+00:00,,,SSD,,,10.45,,,,,,,,,
3,2018-02-08 09:52:59.342269+00:00,,,BWE,,,12.45,,,,,,,,,
4,2018-02-07 04:52:59.342269+00:00,,,RRW,,,9.45,,,,,,,,,
5,2018-02-06 05:52:59.342269+00:00,,,GRE,,,5.45,,,,,,,,,
6,2018-02-05 07:52:59.342269+00:00,,,SSD,,,13.45,,,,,,,,,
7,2018-02-04 10:52:59.342269+00:00,,,SSD,,,8.15,,,,,,,,,
8,2018-02-03 10:52:59.342269+00:00,,,GRE,,,4.15,,,,,,,,,
9,2018-02-02 06:52:59.342269+00:00,,,RRW,,,13.15,,,,,,,,,
10,2018-02-10 22:35:33.438948+00:00,QQW,10.12.11.1,VCD,4.0,23.0,5.0,0.0,,,,,,,,
11,2018-02-10 22:35:37.905242+00:00,CSW,10.12.11.1,VCD,4.0,23.0,6.08,0.0,,,,,,,,
.......................................................................................
.......................................................................................

我像下面一样加载csv文件

df = pd.read_csv("metrics_copy.csv", parse_dates=["date"])   
df['device'] = df['device'].astype(str)
unique_devices = (np.unique(df[['device']].values))
unique_provider = np.unique(df[['provider']].values)

我想获取一个仅包含特定组合的某些列的csv文件。

for i in unique_devices:
    for j in ["cpu", "mem"]:
        df2 = df[(df['device'] == i)]
        df2["date"] = pd.to_datetime(df2["date"], format="%Y-%m-%d")
        print(df2[j])

如您所见,对于设备和指标的每个唯一组合,我将获得一个时间序列数据。我能够df2[j]为给定设备获取一堆值。我想将所有组合的这些值输出到csv文件中只要循环继续进行,我就知道一个叫做pd.concat的概念,可以像下面这样使用

df_final = pd.concat([df, df2, df3.....])

但是为此,我需要为所有可能的组合生成数据帧,然后最终将它们合并为一个数据帧。因此,我希望最终结果csv文件看起来像下面这样 cpu

date cpu
...  ...
...  ...

还有另一个csv文件,mem其内容如下所示

date mem
...  ...
...  ...

但是我不确定如何实现这一目标。有帮助吗?

直线

在追加模式下使用df.to_csv()从以下内容改编而成:如何将熊猫数据添加到现有的csv文件中?

for i in unique_devices:
    for j in ["cpu", "mem"]:
        df2 = df[(df['device'] == i)]
        df2["date"] = pd.to_datetime(df2["date"], format="%Y-%m-%d")
            df2[['date',j]].to_csv('{}.csv'.format(j), mode='a', index=False, header=False)

或者,您可以使用if语句来检查文件是否存在,因此在首次创建文件时将使用标头,然后将其忽略:

for i in unique_devices:
    for j in ["cpu", "mem"]:
        df2 = df[(df['device'] == i)]
        df2["date"] = pd.to_datetime(df2["date"], format="%Y-%m-%d")
        import os
        if not os.path.isfile('{}.csv'.format(j)):
            df.to_csv('{}.csv'.format(j), mode='a', index=False)
        else:
            df2[['date',j]].to_csv('{}.csv'.format(j), mode='a', index=False, header=False)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将两个数据帧中的行合并为 R 中的一个数据帧?

NiFi:如何将多个文件中的数据合并为一个文件

将 foreach 中给出的多个数据帧合并为一个数据帧 - Scala spark

如何将R中的几个数据帧合并为一个较小的单个(减少列数)?

如何在一个文件夹中合并多个.js文件并将其输出到另一个文件夹?

如何将 3 个数据库列表合并为一个并将其显示在 ListView 上;

使用glob后如何将数据帧合并到一个csv文件中?

将通过FOR循环功能输出的多个数据帧合并为一个数据帧

如何将多个数据框日期列合并为R中的一个堆叠日期列

如何将多个数据框合并到一个表中并导出到Excel?

如何将一个CSV中的多个数据帧转换为一个?

Pandas - 合并 2 个数据帧,仅将第一个数据帧中的列作为输出

如何通过键将多个数据帧行合并为一个?

如何将所有 csv 文件合并为一个文件并将数据堆叠在原始标题下?

将全局环境中的多个数据帧合并到一个文件

如何将多个文档中的数组字段合并为 MongoDB 中的单个输出数组并将 mongoexport 合并为 csv

将多个CSV合并为一个,文件名作为Pandas中的列名

如何将多个tfrecord数据集合并为一个数据集?

如何将多个g表中的数据合并为一个?

将多个生成的数据帧合并为一个数据帧

将多个数据文件合并为一个输出,然后从中创建一个文件

如何将一个数据帧附加到python列表中的多个数据帧?

Pyspark将多个csv文件读取到一个数据帧中(或RDD?)

如何将一个数据框列与一个列表中的多个数据框合并?

如何将多个熊猫数据帧合并为一个比内存大的dask数据帧?

将一个文件夹的多个csv文件加载到一个数据帧中

将多个文件读入并合并或合并到公共ID列的一个数据帧中

是否可以将R中的多个数据帧合并为一个数据,其中所有列的键都相同

如何将一个Numpy数组合并到多个数据帧