更改dataframe的列条目以获得相同的范围

2024-09-30 06:14:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,看起来像这样。我已将文件作为数据帧加载。是否有任何可能的方法可以获得相同范围内时间列中的所有值,即以毫秒为单位的所有条目和以MB为单位的内存

prefix/up17/strided_slice_1 4B  15us
prefix/fres16/conv_b_1x3/weights    196.61KB    12us
prefix/fres16/conv_a_3x1/weights    196.61KB    12us
prefix/up20/weights 65.54KB 12us
prefix/fres15/conv_b_1x3/weights    196.61KB    11us
prefix/fres18/conv_b_3x1/weights    49.15KB 11us
prefix/fres7/conv_b_3x1/weights 49.15KB 11us
prefix/fres5/conv_a_3x1/weights 49.15KB 11us
prefix/fres13/conv_b_1x3/weights    196.61KB    11us
prefix/fres18/conv_b_1x3/weights    49.15KB 11us
prefix/fres5/conv_a_1x3/weights 49.15KB 11us
prefix/fres14/conv_a_3x1/weights    196.61KB    11us
prefix/fres7/conv_a_1x3/weights 49.15KB 11us
prefix/fres10/conv_b_1x3/weights    196.61KB    11us
prefix/fres14/conv_b_1x3/weights    196.61KB    11us
prefix/fres4/conv_b_3x1/weights 49.15KB 11us
prefix/d2/conv/weights  27.65KB 11us
prefix/fres19/conv_a_1x3/weights    49.15KB 11us
prefix/fres13/conv_a_1x3/weights    196.61KB    11us
prefix/fres11/conv_a_1x3/weights    196.61KB    11us
prefix/fres21/conv_b_3x1/weights    3.07KB  11us
prefix/fres12/conv_b_3x1/weights    196.61KB    11us
prefix/fres22/conv_b_3x1/weights    3.07KB  11us
prefix/fres18/conv_a_1x3/weights    49.15KB 11us
prefix/fres9/conv_a_3x1/weights 196.61KB    11us

如果这个问题太天真,我很抱歉。我刚接触熊猫


Tags: 文件csv数据方法prefixkb单位weights
1条回答
网友
1楼 · 发布于 2024-09-30 06:14:15

有趣的问题。假设相关的列被命名为sizetime,我就是这样处理的:

size_data = df['size'].str.extract('([\d\.]+)\B(\w?B)').rename(columns={0: 'size_amount', 1: 'size_multiplier'})
time_data = df['time'].str.extract('([\d\.]+)\B(\w?s)').rename(columns={0: 'time_amount', 1: 'time_multiplier'})

size_mapping = {'B': 1 / (1024 ** 2), 'KB': 1 / 1024, 'MB': 1}
time_mapping = {'ms': 1, 'us': 1e-3}

df['size'] = size_data ['size_amount'].astype(float) * size_data ['size_multiplier'].map(size_mapping)
df['time'] = time_data ['time_amount'].astype(float) * time_data ['time_multiplier'].map(time_mapping)

print(df)

输出:

                                path      size   time
0        prefix/up17/strided_slice_1  0.000004  0.015
1   prefix/fres16/conv_b_1x3/weights  0.192002  0.012
2   prefix/fres16/conv_a_3x1/weights  0.192002  0.012
3                prefix/up20/weights  0.064004  0.012
4   prefix/fres15/conv_b_1x3/weights  0.192002  0.011
5   prefix/fres18/conv_b_3x1/weights  0.047998  0.011
6    prefix/fres7/conv_b_3x1/weights  0.047998  0.011
7    prefix/fres5/conv_a_3x1/weights  0.047998  0.011
8   prefix/fres13/conv_b_1x3/weights  0.192002  0.011
9   prefix/fres18/conv_b_1x3/weights  0.047998  0.011
10   prefix/fres5/conv_a_1x3/weights  0.047998  0.011
11  prefix/fres14/conv_a_3x1/weights  0.192002  0.011
12   prefix/fres7/conv_a_1x3/weights  0.047998  0.011
13  prefix/fres10/conv_b_1x3/weights  0.192002  0.011
14  prefix/fres14/conv_b_1x3/weights  0.192002  0.011
15   prefix/fres4/conv_b_3x1/weights  0.047998  0.011
16            prefix/d2/conv/weights  0.027002  0.011
17  prefix/fres19/conv_a_1x3/weights  0.047998  0.011
18  prefix/fres13/conv_a_1x3/weights  0.192002  0.011
19  prefix/fres11/conv_a_1x3/weights  0.192002  0.011
20  prefix/fres21/conv_b_3x1/weights  0.002998  0.011
21  prefix/fres12/conv_b_3x1/weights  0.192002  0.011
22  prefix/fres22/conv_b_3x1/weights  0.002998  0.011
23  prefix/fres18/conv_a_1x3/weights  0.047998  0.011
24   prefix/fres9/conv_a_3x1/weights  0.192002  0.011

如果要添加其他单位或更改基本单位,只需修改size_mapping和/或time_mapping

相关问题 更多 >

    热门问题