我在 Python Pandas 中有 DataFrame,如下所示(當然在真正的 DataFrame 中我還有更多列):
COL1 | COL2 | ... | COLn
-----------------------------------|-------|------|--------
ABC_20220830_CP_6M_BEFORE_100_200 |XXX | .... | ...
XXA_20220830_CP_6M_BEFORE_150_300 |AAA | .... | ...
KKTY_20220830_CP_6M_BEFORE_150_300 |TTT | .... | ...
OOP_20220830_CP_6M_BEFORE_500_600 |TYTT | .... | ...
我想根據以下條件將“COL1”列修改為如下所示:
- 在 COL1 中,每個值的中心是相同的,即:“20220830_CP_6M_BEFORE”只有提到的字串部分之前和之后的值可能不同
- 我需要根據“COL1”中的值創建 2 列:
- 第一列“COL1a”:從值的開頭到“_20220830”
- 第二列“COL1b”:從“CP_6M_BEFORE_”到結束值
| COL1_a | COL1_b | COL2 | …… | 色譜柱 | COL1 |
|---|---|---|---|---|---|
| ABC_20220830 | CP_6M_BEFORE_100_200 | XXX | ... | ... | ABC_20220830_CP_6M_BEFORE_100_200 |
| XXA_20220830 | CP_6M_BEFORE_150_300 | AAA | ... | ... | XXA_20220830_CP_6M_BEFORE_150_300 |
| KKTY_20220830 | CP_6M_BEFORE_150_300 | TTT | ... | ... | KKTY_20220830_CP_6M_BEFORE_150_300 |
| OOP_20220830 | CP_6M_BEFORE_500_600 | 蒂特 | ... | ... | OOP_20220830_CP_6M_BEFORE_500_600 |
我怎樣才能在 Python Pandas 中做到這一點?
uj5u.com熱心網友回復:
為什么不用CP_6M_BEFORE作分隔符?您應該能夠使用 pandas 的split方法提取字串的第一部分:
mydelimiter = 'CP_6M_BEFORE'
df['COL1_a'] = df['COL1'].str.split(mydelimiter).str[0]
您可以使用分隔符作為前綴構建第二部分:
df['COL1_b'] = mydelimiter df['COL1'].str.split(mydelimiter).str[1].astype(str)
如果您正在尋找更強大的解決方案,您可以使用下劃線 ( ) 作為分隔符,_然后從 split 方法輸出的單個字串創建列。COL1_aCOL1_b
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/516483.html
標籤:Python熊猫细绳特点
上一篇:無法在customTableViewCell中設定imageView的影像
下一篇:根據格式從字串中獲取值
