質問編集履歴

1

実データでcanさんのプログラムを使用しようとしたところ、うまく行かなかったため、その詳細を記載しています。

2019/02/26 05:04

投稿

shu_magi
shu_magi

スコア19

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,11 @@
1
+ 【追記しています】
2
+
3
+ 実際に用いるデータテーブルで実行した場合、要素抽出でなく、リストの最初と最後の文字(今回の場合、括弧())が抽出されてしまいました。この投稿の最後に、詳細を追記します。
4
+
5
+
6
+
7
+
8
+
1
9
  簡単な質問かもしれませんが、わからなかったため質問させてください。
2
10
 
3
11
 
@@ -65,3 +73,115 @@
65
73
 
66
74
 
67
75
  宜しくお願い致します。
76
+
77
+
78
+
79
+ 【以下、追記部分】
80
+
81
+ canさんのプログラムを応用し、下記dataについて、最初と最後のデータを抽出しようとしましたが、うまくいきませんでした。
82
+
83
+ ```python_can_san
84
+
85
+ import pandas as pd
86
+
87
+
88
+
89
+ df = pd.DataFrame({'Data':[(1,2,3),(4,5)]})
90
+
91
+ df['start'] = df['Data'].apply(lambda x: x[0])
92
+
93
+ df['end'] = df['Data'].apply(lambda x: x[-1])
94
+
95
+ print(df)
96
+
97
+ ```
98
+
99
+ 処理前
100
+
101
+ |ID|Data|start|end|
102
+
103
+ |:--|:--:|--:|--:|
104
+
105
+ |1|(1_1, 1_2, 1_3, 1_4)|||
106
+
107
+ |2|(1_1, 1_2, 1_3)||
108
+
109
+ |3|(2_1, 1_2)||
110
+
111
+ |4|(1_1, 1_2, 1_3)||
112
+
113
+ |5|(1_1, 1_2)||
114
+
115
+ |6|(2_1, 1_2)||
116
+
117
+
118
+
119
+
120
+
121
+ 以下の応用版では、リストの括弧が抜き出されてしまいます。
122
+
123
+ (データ自体をリストとして保管できていない??)
124
+
125
+ ```python_ouyouban
126
+
127
+ import pandas as pd
128
+
129
+
130
+
131
+ #csv読み込み
132
+
133
+ #csv作成前
134
+
135
+ df = pd.read_csv("trace_table_test.csv", header=0,)
136
+
137
+ df['first_area'] = df['all_area'].apply(lambda x: x[0])
138
+
139
+ df['last_area'] = df['all_area'].apply(lambda x: x[-1])
140
+
141
+ print(df)
142
+
143
+ ```
144
+
145
+ |ID|Data|start|end|
146
+
147
+ |:--|:--:|--:|--:|
148
+
149
+ |1|(1_1, 1_2, 1_3, 1_4)|(|)|
150
+
151
+ |2|(1_1, 1_2, 1_3)|(|)|
152
+
153
+ |3|(2_1, 1_2)|(|)|
154
+
155
+ |4|(1_1, 1_2, 1_3)|(|)|
156
+
157
+ |5|(1_1, 1_2)|(|)|
158
+
159
+ |6|(2_1, 1_2)|(|)|
160
+
161
+
162
+
163
+
164
+
165
+ 列指定の問題と考え、lambdaの後の値を書き換えましたが、次の文字・数値が抜き出されてしまうようです。
166
+
167
+ |ID|Data|start|end|
168
+
169
+ |:--|:--:|--:|--:|
170
+
171
+ |1|(1_1, 1_2, 1_3, 1_4)|1|4|
172
+
173
+ |2|(1_1, 1_2, 1_3)|1|3|
174
+
175
+ |3|(2_1, 1_2)|2|2|
176
+
177
+ |4|(1_1, 1_2, 1_3)|1|3|
178
+
179
+ |5|(1_1, 1_2)|1|2|
180
+
181
+ |6|(2_1, 1_2)|2|2|
182
+
183
+
184
+
185
+ テストデータをExcelで作成、csv保存していることが問題かもしれません。。
186
+
187
+ コメントいただけると助かります。