Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas dataframe-具有选定起始字符串和指定列的列_Pandas - Fatal编程技术网

Pandas dataframe-具有选定起始字符串和指定列的列

Pandas dataframe-具有选定起始字符串和指定列的列,pandas,Pandas,在下面给定的数据框中,我想清理计数器(例如,MEM_TRANS_RETIRED),并将load、rps、th95列添加到数据框中 load rps th95 energy ... MEM_TRANS_RETIRED-34 PERF_COUNT_HW_CACHE_L1D-34 PERF_COUNT_HW_CACHE_L1I-34 map_freq 0 500.0k 346222.62 12.62 7270.

在下面给定的数据框中,我想清理计数器(例如,MEM_TRANS_RETIRED),并将
load、rps、th95列添加到数据框中

       load        rps     th95    energy     ...       MEM_TRANS_RETIRED-34  PERF_COUNT_HW_CACHE_L1D-34  PERF_COUNT_HW_CACHE_L1I-34     map_freq
0    500.0k  346222.62    12.62   7270.22     ...                  154287.14                   591053.74                2.918521e+07   6C-1.70GHz
1    400.0k  402628.34     2.25  12026.40     ...                  189915.07                   627043.91                2.867945e+07  10C-2.10GHz
2    500.0k  283508.27    15.52   5662.74     ...                  140790.31                  1431892.98                4.253950e+07   6C-1.30GHz
我就是这样做的

self.unique_counters = [x[:-2] for x in self.dfile_keys[6:] if x.endswith('-0')]
for counter in self.unique_counters:
 new = self.dfile.loc[:, self.dfile.columns.str.startswith(counter)]
但是,这只提供所选列,而不提供上述附加列

     PERF_COUNT_HW_CPU_CYCLES-0  PERF_COUNT_HW_CPU_CYCLES-2             ...               PERF_COUNT_HW_CPU_CYCLES-32  PERF_COUNT_HW_CPU_CYCLES-34
0                  6.020913e+08                6.021277e+08             ...                              5.109342e+06                 2.556039e+06
1                  4.781879e+08                4.783621e+08             ...                              3.095814e+06                 2.795868e+06
2                  4.841784e+08                4.844846e+08             ...                              2.389396e+06                 5.550159e+06
如何获取具有选定起始字符串和某些指定列的计数器 这是预期的输出

       load        rps     th95    energy   PERF_COUNT_HW_CPU_CYCLES-0  PERF_COUNT_HW_CPU_CYCLES-2             ...               PERF_COUNT_HW_CPU_CYCLES-32  PERF_COUNT_HW_CPU_CYCLES-34
0    500.0k  346222.62    12.62   7270.22   6.020913e+08                6.021277e+08             ...                              5.109342e+06                 2.556039e+06
1    400.0k  402628.34     2.25  12026.40   4.781879e+08                4.783621e+08             ...                              3.095814e+06                 2.795868e+06
2    500.0k  283508.27    15.52   5662.74   4.841784e+08                4.844846e+08             ...                              2.389396e+06                 5.550159e+06

我相信您需要一个新的
数据帧

L = [x[:-2] for x in self.dfile_keys[6:] if x.endswith('-0')]

new = self.dfile.loc[:, self.dfile.columns.str.startswith(tuple(L))]

df = pd.concat([self.dfile[['load','rps','th95','energy']], new], axis=1)
或在列表理解中创建数据帧列表:

self.unique_counters = [x[:-2] for x in self.dfile_keys[6:] if x.endswith('-0')]
dfs = [self.dfile.loc[:, self.dfile.columns.str.startswith(counter)] 
       for counter in self.unique_counters]

df = pd.concat([self.dfile[['load','rps','th95','energy']], dfs], axis=1)

那么,预期的产出是什么呢