teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

サンプル追加

2020/02/05 23:19

投稿

magichan
magichan

スコア15898

answer CHANGED
@@ -22,4 +22,32 @@
22
22
  #3 弘 2000000000 18年
23
23
  #4 花子 120000000 19年
24
24
  #5 将兵 90001000 16年
25
+ ```
26
+
27
+ ---
28
+ **【追記】**
29
+ "年"列の変換も追加したサンプル
30
+ ```
31
+ import pandas as pd
32
+
33
+ df = pd.DataFrame([
34
+ ['武','3000万円', '19年'],
35
+ ['隆','1億円', '18年'],
36
+ ['良太郎','200万円', '20年'],
37
+ ['弘','20億円', '18年'],
38
+ ['花子','1億2000万円', '19年'],
39
+ ['将兵','9000万1000円', '16年'],
40
+ ], columns=['名前','年収','年'])
41
+
42
+ tmp = df['年収'].str.extract(r'(?:(?P<億>\d+)億)?(?:(?P<万>\d+)万)?(?P<円>\d+)?円').fillna(0).astype(int)
43
+ df['年収'] = tmp['億'] * 100000000 + tmp['万'] * 10000 + tmp['円']
44
+ df['年'] = df['年'].str.extract(r'(\d+)年').astype(int) * 100
45
+ print(df)
46
+ # 名前 年収 年
47
+ #0 武 30000000 1900
48
+ #1 隆 100000000 1800
49
+ #2 良太郎 2000000 2000
50
+ #3 弘 2000000000 1800
51
+ #4 花子 120000000 1900
52
+ #5 将兵 90001000 1600
25
53
  ```