我有一个流量数据,看起来像这样.在这里,每列都有格式为meters:seconds的数据.与第1行第2列一样,57:9表示579秒.

0 1 2 3 4 5 6 7 8 9
0:0 57:9 166:34 178:37 203:44 328:63 344:65 436:77 737:108 None
0:0 166:34 178:37 203:43 328:61 436:74 596:51 737:106 None None
0:0 57:6 166:30 178:33 203:40 328:62 344:64 436:74 596:91 None
0:0 203:43 328:61 None None None None None None None
0:0 57:7 166:20 178:43 203:10 328:61 None None None None

我想从数据帧中提取meters个值,并按升序将它们存储在列表中.然后创建一个新的数据帧,其中的列标题将是meters值(出现在列表中).然后,它将匹配父数据帧中的meter值,并将相应的second值添加到下面.缺失的meters:second对应被替换为NaN,并且在该位置的当前对将移动到同一行中的下一列.

预期的结果是: list = [0,57,166,178,203,328,344,436,596,737]

dataframe:

0 57 166 178 203 328 344 436 596 737
0 9 34 37 44 63 65 77 NaN 108
0 NaN 34 37 43 61 NaN 74 51 106
0 6 30 33 40 62 64 74 91 None
0 NaN NaN NaN 43 61 None None None None
0 7 20 43 10 61 None None None None

我知道我必须使用循环来迭代整个数据帧.我是新手,所以我不能解决这个问题.我试着使用str.split(),但它只对1列有效.我有98列和290行.这只是一个月的数据.我将有12个月的数据.所以,需要建议和帮助.

推荐答案

try :

tmp = df1.apply(
    lambda x: dict(
        map(int, val.split(":"))
        for val in x
        if isinstance(val, str) and ":" in val
    ),
    axis=1,
).to_list()
out = pd.DataFrame(tmp)
print(out[sorted(out.columns)])

打印:

   0    57    166   178  203  328   344   436   596    737
0    0  9.0  34.0  37.0   44   63  65.0  77.0   NaN  108.0
1    0  NaN  34.0  37.0   43   61   NaN  74.0  51.0  106.0
2    0  6.0  30.0  33.0   40   62  64.0  74.0  91.0    NaN
3    0  NaN   NaN   NaN   43   61   NaN   NaN   NaN    NaN
4    0  7.0  20.0  43.0   10   61   NaN   NaN   NaN    NaN

Python相关问答推荐

如果索引不存在,pandas系列将通过索引获取值,并填充值

rame中不兼容的d类型

使用miniconda创建环境的问题

如何从在虚拟Python环境中运行的脚本中运行需要宿主Python环境的Shell脚本?

log 1 p numpy的意外行为

如何在Django基于类的视图中有效地使用UTE和RST HTIP方法?

如何使用表达式将字符串解压缩到Polars DataFrame中的多个列中?

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

我如何根据前一个连续数字改变一串数字?

无法在Docker内部运行Python的Matlab SDK模块,但本地没有问题

无论输入分辨率如何,稳定扩散管道始终输出512 * 512张图像

如何使用两个关键函数来排序一个多索引框架?

基于另一列的GROUP-BY聚合将列添加到Polars LazyFrame

在Python中从嵌套的for循环中获取插值

如何从pandas DataFrame中获取. groupby()和. agg()之后的子列?

统计numpy. ndarray中的项目列表出现次数的最快方法

使用python playwright从 Select 子菜单中 Select 值

如何从数据框列中提取特定部分并将该值填充到其他列中?

无法在盐流道中获得柱子

通过对列的其余部分进行采样,在Polars DataFrame中填充_null`?