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

回答編集履歴

1

Update

2021/12/27 01:10

投稿

melian
melian

スコア21294

answer CHANGED
@@ -16,15 +16,17 @@
16
16
  206円80銭
17
17
  214円50銭
18
18
  220円
19
+ 35銭
19
20
  '''.strip()
20
21
 
21
22
  df = pd.read_csv(io.StringIO(data))
22
23
 
23
24
  df['金額'] = (
24
25
  df['金額'].str
25
- .extract(r'(\d+)円((\d+)(?=銭))?')
26
+ .extract(r'((\d+)円)?((\d+)銭)?')
27
+ # .extract(r'(\d+(?=円))?(\d+(?=銭))?')
26
- .fillna(0).astype(int)
28
+ .fillna(0).astype(int, errors='ignore')
27
- .apply(lambda x: f'{x[0]+(x[1]/100 if x[1] else 0)}円', axis=1))
29
+ .apply(lambda x: f'{x[1]+(x[3]/100 if x[3] else 0)}円', axis=1))
28
30
 
29
31
  print(df)
30
32
 
@@ -38,4 +40,5 @@
38
40
  5 206.8円
39
41
  6 214.5円
40
42
  7 220円
43
+ 8 0.35円
41
44
  ```