如何从csv文件中提取列列表并创建一个包含2个新计算值列的新文件

kmbjn2e3  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(166)

我有一个csv文件,我想从中提取一个列列表。完成后,我想创建一个新的csv文件,其中包含从前一个文件中提取的列,以及两个新列Function1和Function2,它们包含每个客户端从时间0.001 s到0.005和从0.006到0.01的点的总和。因此,我有两个问题。
这是第一个.csv文件,除时间列外,其他列中有一些点分配给了主题(只是为了说明)

time  |client1_points| client2_points| client3_points| server1_points|server2_points
0.001     
0.002
0.003
0.004
0.005
0.006
0.007
0.008
0.009
0.01

因此,为了只筛选所需的列,我考虑了这样一个脚本

import math
import pandas as pd
import matplotlib as plt


    df = pd.read_csv('test.csv', sep=',')
    print(df.columns)  # check that the  columns are parsed correctly 
    selected_columns = [col for col in df.columns if ["time, client"] in col]
    df_filtered = df[selected_columns]
    df_filtered.to_csv('new_testfile.csv')

不幸的是,我不知道为什么这不起作用,因为我无法使清单[“时间、客户”]起作用。
下一个问题是,我要创建两个函数“Average1”和“Average2”:
1.函数1必须计算从时间0.001到0.005的(客户端1_点+客户端2_点+客户端3_点)之和
1.函数2必须计算从时间0.006到0.01的(客户端1_点+客户端2_点+客户端3_点)之和
这两个函数的计算值必须直接集成到创建的新.csv文件中。
一些解决问题的想法?
我希望获得包含此列的.csv工作表

time  |client1_points| client2_points| client3_points| Func1| Func2 

0.001     1                  2                1         4       0
0.002     1                  1                2         4       0 
0.003     2                  3                9         14      0
0.004     2                  5                4         11      0 
0.005     4                  9                8         21      0
0.006     8                  1                0          0      9  
0.007     4                  1                0          0      5
0.008     7                  0                0          0      7
0.009     1                  0                9          0      10
0.01      2                  1                0          0      3

非常感谢大家。

rqcrx0a6

rqcrx0a61#

首先,您可以使用以下代码只保留所需的列:

columns = ['time'] + [el for el in df.columns if 'client' in el]
df = df[columns]

然后你必须执行两个单独的计算(你也可以一步完成,但可能会更慢)来求出总和:

df.loc[df['time'] <= 0.005, 'Func1'] = df['client1_points'] + df['client2_points'] + df['client3_points'] 
df.loc[df['time'] > 0.005, 'Func2'] = df['client1_points'] + df['client2_points'] + df['client3_points']

相关问题