質問編集履歴

2

書式の改善

2019/11/11 13:46

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -22,6 +22,12 @@
22
22
 
23
23
  平成 3 年 10 月
24
24
 
25
+ 平成 4 年 1 月
26
+
27
+ 平成 5 年 7 月
28
+
29
+ 平成 8 年 10 月
30
+
25
31
  備考
26
32
 
27
33
  毎年10月の2週目の土曜日に開催
@@ -37,6 +43,12 @@
37
43
  開催月
38
44
 
39
45
  昭和 51 年 2 月
46
+
47
+ 昭和 51 年 6 月
48
+
49
+ 昭和 53 年 9 月
50
+
51
+ 昭和 58 年 10 月
40
52
 
41
53
  備考
42
54
 

1

書式の改善

2019/11/11 13:46

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,24 +1,44 @@
1
- ### 前提・実現したい
1
+ テキストファイル【test_text.txt】から【開催月】の一覧を「年」と「月」に分けて抜き出、それぞれファイルに書き込みpandasで処理をしたいと考えています。
2
2
 
3
- year_listの「年」と「月」別々に抜き出しpandasで処理をしたと考えています。
3
+ (該当コードでは和暦を西暦に変換する関数【seireki()】組み込みながら書いています。
4
4
 
5
5
 
6
6
 
7
- year_list】
7
+ test_text.txt
8
8
 
9
- ```
9
+ ```ここに言語を入力
10
10
 
11
- 昭和46年10月
12
11
 
13
- 平成2年12月
14
12
 
15
- 昭和39年3月
13
+ イベント名
16
14
 
17
- 昭和42年11月
15
+ 〇〇祭り
18
16
 
19
- 平成5年9月
17
+ 開催地
20
18
 
19
+ 東京都
20
+
21
+ 開催月
22
+
23
+ 平成 3 年 10 月
24
+
25
+ 備考
26
+
27
+ 毎年10月の2週目の土曜日に開催
28
+
29
+ イベント名
30
+
31
+ 〇〇パーティー
32
+
33
+ 開催地
34
+
35
+ 東京都
36
+
37
+ 開催月
38
+
21
- 昭和506
39
+ 昭和 51 2
40
+
41
+ 備考
22
42
 
23
43
  .
24
44
 
@@ -28,45 +48,107 @@
28
48
 
29
49
  ```
30
50
 
51
+
52
+
31
- ### 該当ソースコード
53
+ 【test_text.txt】には1000以上イベントが同じように記入されており、抜き出したい【開催月】は必ず「開催月」の下に記されています。
32
54
 
33
55
 
34
56
 
35
- ```python
36
57
 
37
- seireki = re.findall(r'.+年', year_list)
38
58
 
39
- month = re.findall(r'[0-9]+月', year_list)
59
+
40
60
 
41
61
  ```
42
62
 
43
63
 
44
64
 
45
- ### 発生している問題
65
+ myfile = open('test_text.txt', 'r', encoding='utf-8_sig')
46
66
 
47
- 上記のコードを書くと下記のような出力結果になります。
67
+ data = myfile.readlines()
48
68
 
49
- 空のリスト[]をNaNやNoneで埋めるにはどのようなコードを書けばよろしいでしょうか?
69
+ myfile.close()
50
70
 
51
71
 
52
72
 
73
+ d_len = len(data)
74
+
75
+ a = []
76
+
77
+
78
+
79
+ for i in range(d_len):
80
+
81
+ element = data[i]
82
+
83
+ element = element.rstrip()
84
+
85
+ if(element=='開催月'):
86
+
87
+ start_list = data[i+1].rstrip() #開催月の抜き出し
88
+
89
+ start_list= start_list.replace(' ','') #空白を削除
90
+
91
+ start_seireki = re.findall(r'.+年', toshi_list) #開催月の開催年を西暦で抜き取る
92
+
93
+ start_month = re.findall(r'[0-9]+月', toshi_list) #開催月の開催月を抜き取
94
+
53
- 【print(seireki)】
95
+ for ss in start_seireki:
96
+
97
+ ss = seireki(ss).replace('年','') #和暦を西暦に変換する関数seireki()を使用
98
+
99
+ a.append(ss)
100
+
101
+
102
+
103
+ #print(a) #ここで【出力結果1】が返ってきます
104
+
105
+
54
106
 
55
107
  ```
56
108
 
57
- ['平成8年']
58
109
 
110
+
111
+ 【出力結果1】
112
+
113
+ ```
114
+
59
- ['平成8年']
115
+ ['1991年']
116
+
117
+ ['1975年']
60
118
 
61
119
  []
62
120
 
121
+ ['1989年']
122
+
123
+ ['1985年']
124
+
63
125
  []
64
126
 
65
- ['平成9年']
127
+ ['1879年']
66
128
 
67
- ['平成14年']
129
+ ['1991年']
130
+
131
+ .
132
+
133
+ .
134
+
135
+ .
136
+
137
+
68
138
 
69
139
  ```
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+ ### 発生している問題
148
+
149
+ 上記のコードを書くと【出力結果1】のように所々空のリスト[]になってしまいます。
150
+
151
+ 空のリスト[]をNaNやNoneで埋めるにはどのようなコードを書けばよろしいでしょうか?
70
152
 
71
153
 
72
154