2017-11-15 2 views
2

新しいPythonコーダーがここにあります。空の値を付けずにセルをループチェックして追加する

データの行を取り除き、空の(またはnull)セルが新しいリストに追加されない新しいデータリストを作成したいと考えています。

chippedlist=[] 
for line in stringlist:   #for each row of data in datafile 
    chippedline=[] 
    inc=0 
    for cell in line:    #for each cell in one row of data  
     inc+=1 
    if inc == 13 and len(cell)== 0: 
     chippedline=[] 
     break 
    else: 
     if cell == cell[0]: 
      firstcell=cell[1:] 
      chippedline.append(firstcell) 
     if cell != cell[0] and cell != cell[-1]: 
      chippedcell=cell[2:-1] 
      chippedline.append(chippedcell) 
     if cell == cell[-1]: 
      lastcell=cell[:0] 
      chippedline.append(lastcell) 
if len(chippedline) > 0: 
    chippedlist.append(chippedline) 

私はこの記事に私のデータのサンプルを添付しています

は、ここに私のコードです。

最初の行からは、列 'N'(Excelファイル内)に空のセルがあります。これは、 'inc == 13'を作成したインクリメントPythonで0から始まる)私はインクリメントを作成しました。

したがって、ANY行のANYセルが空の場合(たとえば、行15 & 18、列Zおよび列AA)、新しいデータセットにその行を含めたくありません。しかし、何とか私のforループの最初のif文がうまくいかない。

['17040200555', 'A', 'A60', 'LATEMADA60', 'EMAD ', 'LAT', 'KL', 'KL/E', 'SAI', 'HK', 'HK/E', 'E', 'EMA', '', 'SWH1', 'BHL0', '580', 'PYNEH', '2017-04-02 08:29:10', '2017-04-02 08:29:10', '2017-04-02 08:29:16', '2017-04-02 08:29:16', '2017-04-02 08:29:39', '2017-04-02 08:29:40', '2017-04-02 08:40:53', '2017-04-02 08:57:38', '2017-04-02 09:10:19', '2017-04-02 09:24:33', '1', '703', '3293', '1005', '0', 'N', 'N', 'Y', 'Y', 'Y', 'Y', '', '', '0', '600', '2017-04-01 00:00:00', 'LAT', 'N-OTHERS', 'X600-ROSTER not foun', 'ssign to default 083', '030', '201704', '0800-0829', 'JC20170410P1.5.0', "2017-04-27 16:09:53'"] 

['17040200554', 'A', 'A195', 'WONEMADA195', 'EMAD ', 'WON', 'KL', 'KL/E', 'LAI', 'KL', 'KL/W', 'E', 'EMA', '¥þ¨\\xad¥X¯l', 'LCK2', 'CHE0', '185', 'CMC', '2017-04-02 08:28:38', '2017-04-02 08:28:38', '2017-04-02 08:28:48', '2017-04-02 08:28:48', '2017-04-02 08:29:04', '2017-04-02 08:29:05', '2017-04-02 08:31:35', '2017-04-02 08:39:00', '2017-04-02 08:43:17', '2017-04-02 08:57:36', '1', '177', '1711', '445', '0', 'N', 'N', 'Y', 'Y', 'Y', 'Y', '', '', '0', '1135715', '2017-04-01 00:00:00', 'WON', 'D-0730', 'B3-No Roster foun', 'leet group to same depot/OIC:WON TAM TSZ YEUNG X600', '201704', '0800-0829', 'JC20170410P1.5.0', "2017-04-27 16:09:53'"] 

['17040200553', 'A', 'A63', 'CASEMASA63', 'EMAS ', 'CAS', 'NT', 'NT/NW', 'CAS', 'NT', 'NT/NW', 'E', 'EMA', 'SLIP', 'CPB2', 'CAS0', '148', 'TMH', '2017-04-02 08:27:56', '2017-04-02 08:27:56', '2017-04-02 08:28:02', '2017-04-02 08:28:02', '2017-04-02 08:28:19', '2017-04-02 08:28:52', '2017-04-02 08:34:58', '2017-04-02 08:58:52', '2017-04-02 09:11:57', '2017-04-02 09:24:59', '1', '422', '3367', '1434', '0', 'N', 'N', 'Y', 'Y', 'Y', 'Y', '', '', '0', '600', '2017-04-01 00:00:00', 'CAS', 'N-OTHERS', 'X600-ROSTER not foun', 'ssign to default 083', '030', '201704', '0800-0829', 'JC20170410P1.5.0', "2017-04-27 16:09:53'"] 

['17040200552', 'A', 'A125', 'ALCEMADA125', 'EMAD ', 'ALC', 'HK', 'HK/W', 'ABD', 'HK', 'HK/W', 'E', 'EMA', 'FEVER', 'ALC1', 'ABD0', '495', 'QMH', '2017-04-02 08:27:38', '2017-04-02 08:27:38', '2017-04-02 08:27:47', '2017-04-02 08:27:47', '2017-04-02 08:27:53', '2017-04-02 08:27:54', '2017-04-02 08:36:09', '2017-04-02 08:51:29', '2017-04-02 09:08:26', '2017-04-02 09:22:05', '1', '511', '3251', '920', '0', 'N', 'N', 'Y', 'Y', 'Y', 'Y', '', '', '0', '600', '2017-04-01 00:00:00', 'ALC', 'N-OTHERS', 'X600-ROSTER not foun', 'ssign to default 083', '030', '201704', '0800-0829', 'JC20170410P1.5.0', "2017-04-27 16:09:53'"] 

['17040200551', 'A', 'A192', 'POLEMADA192', 'EMAD ', 'POL', 'KL', 'KL/E', 'POL', 'KL', 'KL/E', 'E', 'EMA1', '', 'PLM9', 'POL0', '339', 'UCH', '2017-04-02 08:27:47', '2017-04-02 08:27:47', '2017-04-02 08:27:52', '2017-04-02 08:27:52', '2017-04-02 08:28:35', '2017-04-02 08:28:36', '2017-04-02 08:34:57', '2017-04-02 08:45:18', '2017-04-02 09:05:48', '2017-04-02 09:19:52', '1', '430', '3076', '621', '0', 'N', 'N', 'Y', 'Y', 'N', 'Y', '', '', '1136057', '1136057', '2017-04-01 00:00:00', 'POL', 'N-2030', 'A1-Roster found', '201704', '0800-0829', 'JC20170410P1.5.0', "2017-04-27 16:09:53'"] 

追加情報:私は私の元を読み取るためにcsv.readerを使用

次の出力に示すよう

しかし、それはまだ新しいデータセットへの本の空のセルを含む行を追加しますファイルをPythonに変換します。

  1. オリジナルファイルは.csvファイル
  2. である私は
  3. '"= ''、区切り= ''、 quotechar =' 改行を使用し、私はその後 のリストに.csvファイルを変換します.splitを使用して文字列()

誰もが事前に

感謝を:)してください助けることができます!

あなたのコメントを1として

Data Sample

+1

はちょうど私のポストを編集し、私の非常に最初のポスト申し訳ありませんが、正常に表示されたコードのフォーマットのブロックを作る方法を知りませんでした。 – Christoph

+0

サンプルでは、​​ 'AN'列と' AO'列は常に空です。あなたはその場合何をしたいですか?結果の出力は空ではないでしょうか? – Jay

+0

@Jayはい、最終データセットの2つの列を削除したいと思います(最終データセットには含めません)。 – Christoph

答えて

0

、また、あなたの場合には、すべてゼロでANAO列を、スキップしたいです。この小さなスニペットはあなたのために働くはずです -

f = open('sample.csv', 'r') 
raw_data = f.readlines() 
stringlist = [line.strip().split(',') for line in raw_data] 

chippedlist = [] 
for line in stringlist: # for each row of data in datafile 
    if '' in line[:39] or '' in line[42:]: # column AN=40, check whether '' is in the list 
     continue 
    else: 
     chippedlist.append(line[:39] + line[42:]) 

あなたの要件に応じてさらに拡張することができます。 がここにあなたの入力ファイルからの結果chippedlistされる -

['17040200554', 'A', 'A195', 'WONEMADA195', 'EMAD ', 'WON', 'KL', 'KL/E', 'LAI', 'KL', 'KL/W', 'E', 'EMA', '\xa5\xfe\xa8\xad\xa5X\xafl', 'LCK2', 'CHE0', '185', 'CMC', '2017-04-02 08:28:38', '2017-04-02 08:28:38', '2017-04-02 08:28:48', '2017-04-02 08:28:48', '2017-04-02 08:29:04', '2017-04-02 08:29:05', '2017-04-02 08:31:35', '2017-04-02 08:39:00', '2017-04-02 08:43:17', '2017-04-02 08:57:36', '1', '177', '1711', '445', '0', 'N', 'N', 'Y', 'Y', 'Y', 'Y', '1135715', '2017-04-01 00:00:00', 'WON', 'D-0730', '"B3-No Roster found', ' Fleet group to same depot/OIC:WON TAM TSZ YEUNG X600"', '201704', '0800-0829', 'JC20170410P1.5.0', '2017-04-27 16:09:53'] 
['17040200553', 'A', 'A63', 'CASEMASA63', 'EMAS ', 'CAS', 'NT', 'NT/NW', 'CAS', 'NT', 'NT/NW', 'E', 'EMA', 'SLIP', 'CPB2', 'CAS0', '148', 'TMH', '2017-04-02 08:27:56', '2017-04-02 08:27:56', '2017-04-02 08:28:02', '2017-04-02 08:28:02', '2017-04-02 08:28:19', '2017-04-02 08:28:52', '2017-04-02 08:34:58', '2017-04-02 08:58:52', '2017-04-02 09:11:57', '2017-04-02 09:24:59', '1', '422', '3367', '1434', '0', 'N', 'N', 'Y', 'Y', 'Y', 'Y', '600', '2017-04-01 00:00:00', 'CAS', 'N-OTHERS', '"X600-ROSTER not found', ' assign to default 0830', ' 2030"', '201704', '0800-0829', 'JC20170410P1.5.0', '2017-04-27 16:09:53'] 
['17040200552', 'A', 'A125', 'ALCEMADA125', 'EMAD ', 'ALC', 'HK', 'HK/W', 'ABD', 'HK', 'HK/W', 'E', 'EMA', 'FEVER', 'ALC1', 'ABD0', '495', 'QMH', '2017-04-02 08:27:38', '2017-04-02 08:27:38', '2017-04-02 08:27:47', '2017-04-02 08:27:47', '2017-04-02 08:27:53', '2017-04-02 08:27:54', '2017-04-02 08:36:09', '2017-04-02 08:51:29', '2017-04-02 09:08:26', '2017-04-02 09:22:05', '1', '511', '3251', '920', '0', 'N', 'N', 'Y', 'Y', 'Y', 'Y', '600', '2017-04-01 00:00:00', 'ALC', 'N-OTHERS', '"X600-ROSTER not found', ' assign to default 0830', ' 2030"', '201704', '0800-0829', 'JC20170410P1.5.0', '2017-04-27 16:09:53'] 
['17040200550', 'A', 'A266', 'LATEMADA266', 'EMAD ', 'LAT', 'KL', 'KL/E', 'LAT', 'KL', 'KL/E', 'E', 'EMA', 'FOOT PAIN X MOVE', 'KTG2', 'KTG2', '89', 'UCH', '2017-04-02 08:27:24', '2017-04-02 08:27:24', '2017-04-02 08:27:33', '2017-04-02 08:27:33', '2017-04-02 08:27:57', '2017-04-02 08:27:58', '2017-04-02 08:34:30', '2017-04-02 09:27:41', '2017-04-02 09:37:56', '2017-04-02 09:51:05', '1', '426', '4987', '3191', '0', 'N', 'N', 'Y', 'Y', 'Y', 'Y', '600', '2017-04-01 00:00:00', 'LAT', 'N-OTHERS', '"X600-ROSTER not found', ' assign to default 0830', ' 2030"', '201704', '0800-0829', 'JC20170410P1.5.0', '2017-04-27 16:09:53'] 
['17040200548', 'A', 'A252', 'WONEMADA252', 'EMAD ', 'WON', 'KL', 'KL/E', 'WON', 'KL', 'KL/E', 'E', 'EMAFR', 'FR(SOB)', 'WTS2', 'WON0', '247', 'QEH', '2017-04-02 08:26:24', '2017-04-02 08:26:24', '2017-04-02 08:26:35', '2017-04-02 08:26:35', '2017-04-02 08:27:09', '2017-04-02 08:28:04', '2017-04-02 08:32:52', '2017-04-02 08:50:05', '2017-04-02 09:19:08', '2017-04-02 09:33:12', '1', '388', '3908', '1033', '0', 'N', 'N', 'Y', 'Y', 'Y', 'Y', '600', '2017-04-01 00:00:00', 'WON', 'N-OTHERS', '"X600-ROSTER not found', ' assign to default 0830', ' 2030"', '201704', '0800-0829', 'JC20170410P1.5.0', '2017-04-27 16:09:53'] 
['17040200545', 'A', 'A93', 'FANEMADA93', 'EMAD ', 'FAN', 'NT', 'NT/NE', 'SHE', 'NT', 'NT/NE', 'E', 'EMAFR', 'FR(COLL)', 'SSI1', 'FAN0', '223', 'NDH', '2017-04-02 08:22:45', '2017-04-02 08:22:45', '2017-04-02 08:22:54', '2017-04-02 08:22:54', '2017-04-02 08:24:04', '2017-04-02 08:24:05', '2017-04-02 08:26:49', '2017-04-02 08:32:37', '2017-04-02 08:46:49', '2017-04-02 09:12:03', '1', '244', '2878', '348', '0', 'N', 'N', 'Y', 'Y', 'Y', 'Y', '1140591', '2017-04-01 00:00:00', 'FAN', 'N-2030', 'A1-Roster found', '201704', '0800-0829', 'JC20170410P1.5.0', '2017-04-27 16:09:53'] 
['17040200543', 'A', 'A171', 'SAIEMADA171', 'EMAD ', 'SAI', 'HK', 'HK/E', 'SAI', 'HK', 'HK/E', 'E', 'EMAFR', 'FR(SOB)', 'CWN2', 'SKW2', '143', 'PYNEH', '2017-04-02 08:22:18', '2017-04-02 08:22:18', '2017-04-02 08:22:46', '2017-04-02 08:22:47', '2017-04-02 08:22:59', '2017-04-02 08:23:00', '2017-04-02 08:25:56', '2017-04-02 08:41:06', '2017-04-02 08:48:28', '2017-04-02 09:02:49', '1', '218', '2389', '910', '0', 'N', 'N', 'Y', 'Y', 'Y', 'Y', '1137452', '2017-04-01 00:00:00', 'SAI', 'D-0730', '"B3-No Roster found', ' Fleet group to same depot/OIC:SAI KONG KING TONG X600"', '201704', '0800-0829', 'JC20170410P1.5.0', '2017-04-27 16:09:53'] 
['17040200541', 'A', 'A217', 'KTKEMADA217', 'EMAD ', 'KTK', 'KL', 'KL/E', 'NGA', 'KL', 'KL/E', 'E', 'EMA', '\xa5\xfe\xa8\xad\xb5L\xa4O', 'KBY3', 'KTK0', '233', 'UCH', '2017-04-02 08:19:23', '2017-04-02 08:19:23', '2017-04-02 08:19:29', '2017-04-02 08:19:29', '2017-04-02 08:20:16', '2017-04-02 08:20:17', '2017-04-02 08:24:18', '2017-04-02 08:33:57', '2017-04-02 08:44:47', '2017-04-02 08:59:48', '1', '295', '2371', '579', '0', 'N', 'N', 'Y', 'Y', 'Y', 'Y', '1140660', '2017-04-01 00:00:00', 'KTK', 'N-2030', 'A1-Roster found', '201704', '0800-0829', 'JC20170410P1.5.0', '2017-04-27 16:09:53'] 
['17040200540', 'A', 'A260', 'TAIEMADA260', 'EMAD ', 'TAI', 'NT', 'NT/NE', 'TAI', 'NT', 'NT/NE', 'E', 'EMA', 'DIZZ', 'TPO1', 'TAI0', '188', 'AHNH', '2017-04-02 08:18:53', '2017-04-02 08:18:53', '2017-04-02 08:18:58', '2017-04-02 08:18:58', '2017-04-02 08:19:12', '2017-04-02 08:19:13', '2017-04-02 08:25:27', '2017-04-02 08:43:38', '2017-04-02 08:48:37', '2017-04-02 09:02:01', '1', '394', '2568', '1091', '0', 'N', 'N', 'Y', 'Y', 'Y', 'Y', '1135828', '2017-04-01 00:00:00', 'TAI', 'D-0730', '"B3-No Roster found', ' Fleet group to same depot/OIC:TAI CHAN CHUNG FU X600"', '201704', '0800-0829', 'JC20170410P1.5.0', '2017-04-27 16:09:53'] 
+0

それは動作します!どうもありがとうございます@ジェイ!あなたは私のコードをもっと簡単にしました。私はコードのいくつかのことを思っていました。 :) – Christoph

関連する問題