回答編集履歴
1
Update
test
CHANGED
@@ -1,24 +1,21 @@
|
|
1
1
|
```python
|
2
2
|
import pandas as pd
|
3
3
|
|
4
|
-
df = pd.DataFrame(
|
4
|
+
df = pd.DataFrame(data={
|
5
|
-
|
5
|
+
'A': ['1_あいうえお 2_かきく 3_さしすせそ 2_かきくけこ',
|
6
|
+
'1_あいうえお 2_かきく 3_さしすせそ 2_かきくけこ 3_さしす']
|
6
|
-
)
|
7
|
+
})
|
7
8
|
|
8
9
|
#
|
9
|
-
def update_to_latest(s):
|
10
|
-
s = s.dropna()
|
11
|
-
|
10
|
+
df['B'] = df['A'].str.split(r'\s+', expand=True)\
|
12
|
-
|
11
|
+
.apply(lambda x: x.groupby(x.str.extract(r'^(\d+_)')[0])
|
13
|
-
.apply(lambda x: pd.Series(x.iloc[-1], index=x.index[:1]) if x.name == last else x)\
|
14
|
-
.s
|
12
|
+
.last().str.cat(sep=' '), axis=1)
|
15
13
|
|
16
|
-
df['B'] = df['A'].str.split(r'\s+', expand=True).apply(update_to_latest, axis=1)
|
17
14
|
print(df)
|
18
15
|
```
|
19
16
|
|
20
|
-
| | A | B
|
17
|
+
| | A | B |
|
21
|
-
|---:|:---------------------------------------------------------|:---------------------------------------
|
18
|
+
|---:|:---------------------------------------------------------|:---------------------------------------|
|
22
|
-
| 0 | 1_あいうえお 2_かきく 3_さしすせそ 2_かきくけこ | 1_あいうえお 2_かきくけこ 3_さしすせそ
|
19
|
+
| 0 | 1_あいうえお 2_かきく 3_さしすせそ 2_かきくけこ | 1_あいうえお 2_かきくけこ 3_さしすせそ |
|
23
|
-
| 1 | 1_あいうえお 2_かきく 3_さしすせそ 2_かきくけこ 3_さしす | 1_あいうえお 2_かきく 3_さしす
|
20
|
+
| 1 | 1_あいうえお 2_かきく 3_さしすせそ 2_かきくけこ 3_さしす | 1_あいうえお 2_かきくけこ 3_さしす |
|
24
21
|
|