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

質問編集履歴

5

書式の改善

2020/09/04 12:54

投稿

ErstNeun
ErstNeun

スコア1

title CHANGED
@@ -1,1 +1,1 @@
1
- Pandasで読み込んだデータのX文字目からY文字目までを結合する方法について
1
+ Pandasで読み込んだデータのX文字目からY文字目までを結合する方法について又は任意の文字数でのtableの分割方法
body CHANGED
File without changes

4

書式の改善

2020/09/04 12:54

投稿

ErstNeun
ErstNeun

スコア1

title CHANGED
File without changes
body CHANGED
@@ -21,13 +21,14 @@
21
21
  HDABCDEF 000111 YYYYMMDDYYYYMMDDYYYYMMDD
22
22
 
23
23
  > 作成したいデータ
24
- HD,ABCDEF, ,000111, ,YYYYMMDD,YYYYMMDD,YYYYMMDD
24
+ HD,ABCDEF, ,000111, ,YYYYMMDD,YYYYMMDD,YYYYMMDD
25
25
 
26
26
  ※スペースは文字列としてカウント
27
27
 
28
28
  結合は
29
+ HD,ABCDFE, ,000111, ,YYYYMMDD,YYYYMMDD,YYYYMMDD
29
- 1~2, 3~7, 8~18, 19~24, 25~28, 29~36, 37~44, 45~52 文字目を結合したいです。
30
+ 1~2, 3~7, 8~18 ,19~24, 25~28, 29~36, 37~44, 45~52 文字目を結合したいです。
30
- 2 6 11 6 4 8 8 8 ←それぞれの結合したい文字数
31
+ 2 6 11 6 4 8 8 8 ←それぞれの結合したい文字数
31
32
 
32
33
  ### 該当のソースコード
33
34
  `````````````````````````````````````````````````````````````````````

3

段落修正

2020/09/01 04:14

投稿

ErstNeun
ErstNeun

スコア1

title CHANGED
File without changes
body CHANGED
@@ -19,8 +19,10 @@
19
19
 
20
20
  > 引用テキスト(元データ)
21
21
  HDABCDEF 000111 YYYYMMDDYYYYMMDDYYYYMMDD
22
+
22
- 作成したいデータ
23
+ > 作成したいデータ
23
24
  HD,ABCDEF, ,000111, ,YYYYMMDD,YYYYMMDD,YYYYMMDD
25
+
24
26
  ※スペースは文字列としてカウント
25
27
 
26
28
  結合は

2

誤字

2020/09/01 03:59

投稿

ErstNeun
ErstNeun

スコア1

title CHANGED
File without changes
body CHANGED
@@ -21,6 +21,7 @@
21
21
  HDABCDEF 000111 YYYYMMDDYYYYMMDDYYYYMMDD
22
22
  作成したいデータ
23
23
  HD,ABCDEF, ,000111, ,YYYYMMDD,YYYYMMDD,YYYYMMDD
24
+ ※スペースは文字列としてカウント
24
25
 
25
26
  結合は
26
27
  1~2, 3~7, 8~18, 19~24, 25~28, 29~36, 37~44, 45~52 文字目を結合したいです。

1

ソースコードを途中までですが、最初から記載いたしました。

2020/09/01 03:57

投稿

ErstNeun
ErstNeun

スコア1

title CHANGED
File without changes
body CHANGED
@@ -6,24 +6,50 @@
6
6
  ### 発生している問題・エラーメッセージ
7
7
 
8
8
  元のテキストデータはTabや「,」で区切られておりません。
9
- このため、行ったのは1行目1,005を一文字づつ区切って
9
+ このため、行ったのは1,005文字を一文字づつ区切って
10
10
  data[0]+data[1]...で結合を行っているが、1,005文字あるのでこれを手作業で行うよりは
11
11
  X文字目からY文字目まで結合するなどのコードが分かればと思い質問させていただきました。
12
12
  よろしくお願いします。
13
13
 
14
+ コードを使う使わない別として、全てのコードを記載しました。
15
+ 分かりづらくて申し訳ありません。
16
+
17
+ 現在成功している事
18
+ 読み込んだデータを1文字づつ区切る
19
+
14
- ### 該当のソー
20
+ > 引用テキト(元デタ)
15
- 元データ(一部抜粋)
16
- HDABCDEF 000111 202009012020080120200831
21
+ HDABCDEF 000111 YYYYMMDDYYYYMMDDYYYYMMDD
17
22
  作成したいデータ
18
- HD,ABCDEF, ,000111, ,20200901,20200801,20200831
23
+ HD,ABCDEF, ,000111, ,YYYYMMDD,YYYYMMDD,YYYYMMDD
19
24
 
25
+ 結合は
26
+ 1~2, 3~7, 8~18, 19~24, 25~28, 29~36, 37~44, 45~52 文字目を結合したいです。
20
- df = pd.read_table(filepath , header=None, encoding='cp932')
27
+ 2 6 11 6 4 8 8 8 ←それぞれの結合したい文字数
21
- これで元データを1文字づつに区切り
22
28
 
29
+ ### 該当のソースコード
30
+ `````````````````````````````````````````````````````````````````````
31
+ import pandas as pd
32
+ import numpy as np
33
+ import os
34
+ import openpyxl
35
+ import glob
36
+ import re
37
+
38
+ #ファイルパス
39
+ filepath = ('Python/test.txt')
40
+
41
+ #ファイル読み込み
42
+ df = pd.read_table(filepath , header=None)
43
+
44
+ df1 = df.iloc[0][0]
45
+
46
+ #1文字づつ分割
23
- data[0]+data[1], data[2]+(中略)+data[7], data[8]+(中略)+data[18], .......
47
+ data = [df1[i: i+1] for i in range(0, len(df1), 1)]
48
+
49
+ #1文字目と2文字目、 3~7文字目を結合、 8~18文字目を結合
50
+ df2 = data[0]+data[1], data[2]+data[3]+data[4]+data[5]+data[6]+data[7], data[8]+data[9]+data[10]+data[11]+data[12]+data[13]+data[14]+data[15]+data[16]+data[17]+data[18]
51
+
52
+ ``````````````````````````````````````````````````````````````````````
53
+
24
54
  という形での途中まで結合を行いました。
25
- 解決法がございましたら、よろしくお願いします。
55
+ 解決法がございましたら、よろしくお願いします。
26
-
27
- ```ここに言語名を入力
28
- Python3
29
- ```