回答編集履歴

1

サンプル追加

2020/02/05 23:19

投稿

magichan
magichan

スコア15898

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
+ ```