每次在Python中使用pandas重复一个值时,都要对数据帧进行分段
我正在尝试生成字符串,或者至少生成与现有数据帧不同的数据帧。我得到的是:每次在Python中使用pandas重复一个值时,都要对数据帧进行分段,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我正在尝试生成字符串,或者至少生成与现有数据帧不同的数据帧。我得到的是: Line MM/DD/YYhh:mm:ss.ms.us TEST 9 04/17/2013:44:18.215.500 S 20 04/17/2013:44:18.216.020 U 27 04/17/2013:44:18.216.544 P 34 04/17/2013:44:18.217.064 P 39 04/17/2013:44:18.217
Line MM/DD/YYhh:mm:ss.ms.us TEST
9 04/17/2013:44:18.215.500 S
20 04/17/2013:44:18.216.020 U
27 04/17/2013:44:18.216.544 P
34 04/17/2013:44:18.217.064 P
39 04/17/2013:44:18.217.584 L
48 04/17/2013:44:18.218.104 Y
55 04/17/2013:44:18.218.627 P
62 04/17/2013:44:18.219.147 R
69 04/17/2013:44:18.219.667 <CR>
76 04/17/2013:44:18.220.187 <LF>
179 04/17/2013:44:18.721.249 U
184 04/17/2013:44:18.721.769 L
193 04/17/2013:44:18.722.289 <CR>
200 04/17/2013:44:18.722.812 <LF>
304 04/17/2013:44:19.236.017 E
311 04/17/2013:44:19.236.537 R
318 04/17/2013:44:19.237.060 R
327 04/17/2013:44:19.237.580 <CR>
334 04/17/2013:44:19.238.100 <LF>
371 04/17/2013:44:19.649.033 M
376 04/17/2013:44:19.649.553 O
383 04/17/2013:44:19.650.073 D
390 04/17/2013:44:19.650.596 E
395 04/17/2013:44:19.651.116 ?
402 04/17/2013:44:19.651.636 <CR>
409 04/17/2013:44:19.652.156 <LF>
489 04/17/2013:44:20.160.040 T
496 04/17/2013:44:20.160.560 P
505 04/17/2013:44:20.161.084 <CR>
512 04/17/2013:44:20.161.604 <LF>
607 04/17/2013:44:20.642.301 P
614 04/17/2013:44:20.642.821 R
623 04/17/2013:44:20.643.345 <CR>
630 04/17/2013:44:20.643.865 <LF>
行MM/DD/YYhh:MM:ss.ms.us测试
2013年4月17日9:44:18.215.500秒
20 04/17/2013:44:18.216.020 U
2013年4月17日27时44分18.216.544分
3404/17/2013:44:18.217.064 P
39/04/17/2013:44:18.217.584 L
2013年4月17日48时44分18.218.104分
55/04/17/2013:44:18.218.627 P
62 04/17/2013:44:18.219.147 R
69 04/17/2013:44:18.219.667
76 04/17/2013:44:18.220.187
179 04/17/2013:44:18.721.249 U
184 04/17/2013:44:18.721.769升
193 04/17/2013:44:18.722.289
200 04/17/2013:44:18.722.812
304 04/17/2013:44:19.236.017 E
311 04/17/2013:44:19.236.537 R
31804/17/2013:44:19.237.060 R
327 04/17/2013:44:19.237.580
334 04/17/2013:44:19.238.100
37104/17/2013:44:19.649.033米
37604/17/2013:44:19.649.553 O
383 04/17/2013:44:19.650.073 D
390 04/17/2013:44:19.650.596 E
395 04/17/2013:44:19.651.116 ?
402 04/17/2013:44:19.651.636
409 04/17/2013:44:19.652.156
48904/17/2013:44:20.160.040 T
49604/17/2013:44:20.160.560 P
505 04/17/2013:44:20.161.084
512 04/17/2013:44:20.161.604
60704/17/2013:44:20.642.301 P
61404/17/2013:44:20.642.821 R
623 04/17/2013:44:20.643.345
630 04/17/2013:44:20.643.865
我正在尝试将上面的代码片段格式化为字符串,使其看起来像这样
04/17/2013:44:18.220.187-SUPPLYPR<CR><LF>
04/17/2013:44:18.722.812-UL<CR><LF>
.
.
.
04/17/2013:44:18.220.187-SUPPLYPR
2013年4月17日:44:18.722.812-UL
.
.
.
它应该做的是,它应该获取测试值所在的MM/DD/YY数据,并将测试中的所有值合并到每个值,并为每个值的出现生成一个字符串。在这个数据帧之前,我获取的原始数据是不同的,需要做很多工作。但现在我有点困在如何得到这种格式。如有任何想法/建议,将不胜感激。谢谢:)IIUC,您正在寻找
groupby
:
(df.groupby(df.TEST.shift().eq('<LF>').cumsum())
.agg({'MM/DD/YYhh:mm:ss.ms.us':'last',
'TEST':''.join})
.reset_index(drop=True)
)
(df.groupby(df.TEST.shift().eq(“”).cumsum())
agg女士({'MM/DD/YYhh:MM:ss.ms.us':'last',
'TEST':''.join})
.reset_索引(drop=True)
)
输出:
MM/DD/YYhh:mm:ss.ms.us TEST
0 04/17/2013:44:18.220.187 SUPPLYPR<CR><LF>
1 04/17/2013:44:18.722.812 UL<CR><LF>
2 04/17/2013:44:19.238.100 ERR<CR><LF>
3 04/17/2013:44:19.652.156 MODE?<CR><LF>
4 04/17/2013:44:20.161.604 TP<CR><LF>
5 04/17/2013:44:20.643.865 PR<CR><LF>
MM/DD/YYhh:MM:ss.ms.us测试
0 04/17/2013:44:18.220.187 SUPPLYPR
1 04/17/2013:44:18.722.812 UL
2 04/17/2013:44:19.238.100错误
3 04/17/2013:44:19.652.156模式?
2013年4月17日:44:20.161.604 TP
5 04/17/2013:44:20.643.865 PR
问题陈述不明确哇。这工作做得很好!!非常感谢你!!还有一件事,如果我想将“Line”列添加到这个列表中,或者在最左侧添加一个文本(例如-“cool”)?用assign(Line=your\u new\u value)
链接它。但是,您需要手动重新排列列,使新列位于最左侧。那么上面代码段中已经存在的“Line”列呢?您想对它做什么,可以这样做,例如.agg({'Line':'first',MM/DD…