我有一列填充了字串值:
| col_1 |
|---|
| 10500 |
| 25020 |
| 35640 |
| 45440 |
| 50454 |
| 62150 |
| 75410 |
我希望能夠創建另外兩列,其中包含已從第一列拆分的字串值。我也想要一種有效的方法來做到這一點。
假設結果:
| col_1 | col_2 | col_3 |
|---|---|---|
| 10500 | 10 | 500 |
| 25020 | 25 | 020 |
| 35640 | 35 | 640 |
| 45440 | 45 | 440 |
| 50454 | 50 | 454 |
| 62150 | 62 | 150 |
| 75410 | 75 | 410 |
到目前為止,我一直在嘗試使用矢量化,但還沒有實作它。
對于拆分部分,我決議行(使用 iterows,并且我知道必須盡可能避免使用 iterows。)并創建一個可用于填充新選項卡的串列,但我認為這種方式是太古老了。
另外,我怎樣才能有效地修改每個單元格?喜歡添加逗號,或者對它們進行操作?
謝謝你。
uj5u.com熱心網友回復:
使用str訪問器:
df = df.join(df['col_1'].astype(str).str.extract('(?P<col_2>\d{2})(?P<col_3>\d{3})'))
print(df)
# Output:
col_1 col_2 col_3
0 10500 10 500
1 25020 25 020
2 35640 35 640
3 45440 45 440
4 50454 50 454
5 62150 62 150
6 75410 75 410
或者簡單幾步:
df['col_1'] = df['col_1'].astype(str)
df['col_2'] = df['col_1'].str[:2]
df['col_3'] = df['col_1'].str[2:]
print(df)
# Output
col_1 col_2 col_3
0 10500 10 500
1 25020 25 020
2 35640 35 640
3 45440 45 440
4 50454 50 454
5 62150 62 150
6 75410 75 410
另一個例子:
df['col_1'] = df['col_1'].astype(str)
df['col_4'] = df['col_1'].str[:2] '-' df['col_1'].str[2:]
print(df)
# Output
col_1 col_4
0 10500 10-500
1 25020 25-020
2 35640 35-640
3 45440 45-440
4 50454 50-454
5 62150 62-150
6 75410 75-410
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/412470.html
標籤:
