回答編集履歴
1
サンプル追加
test
CHANGED
@@ -47,3 +47,59 @@
|
|
47
47
|
#5 将兵 90001000 16年
|
48
48
|
|
49
49
|
```
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
---
|
54
|
+
|
55
|
+
**【追記】**
|
56
|
+
|
57
|
+
"年"列の変換も追加したサンプル
|
58
|
+
|
59
|
+
```
|
60
|
+
|
61
|
+
import pandas as pd
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
df = pd.DataFrame([
|
66
|
+
|
67
|
+
['武','3000万円', '19年'],
|
68
|
+
|
69
|
+
['隆','1億円', '18年'],
|
70
|
+
|
71
|
+
['良太郎','200万円', '20年'],
|
72
|
+
|
73
|
+
['弘','20億円', '18年'],
|
74
|
+
|
75
|
+
['花子','1億2000万円', '19年'],
|
76
|
+
|
77
|
+
['将兵','9000万1000円', '16年'],
|
78
|
+
|
79
|
+
], columns=['名前','年収','年'])
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
tmp = df['年収'].str.extract(r'(?:(?P<億>\d+)億)?(?:(?P<万>\d+)万)?(?P<円>\d+)?円').fillna(0).astype(int)
|
84
|
+
|
85
|
+
df['年収'] = tmp['億'] * 100000000 + tmp['万'] * 10000 + tmp['円']
|
86
|
+
|
87
|
+
df['年'] = df['年'].str.extract(r'(\d+)年').astype(int) * 100
|
88
|
+
|
89
|
+
print(df)
|
90
|
+
|
91
|
+
# 名前 年収 年
|
92
|
+
|
93
|
+
#0 武 30000000 1900
|
94
|
+
|
95
|
+
#1 隆 100000000 1800
|
96
|
+
|
97
|
+
#2 良太郎 2000000 2000
|
98
|
+
|
99
|
+
#3 弘 2000000000 1800
|
100
|
+
|
101
|
+
#4 花子 120000000 1900
|
102
|
+
|
103
|
+
#5 将兵 90001000 1600
|
104
|
+
|
105
|
+
```
|