2016-09-29 17 views
0

I持つデータフレーム(df)でresult変数以下と私は出力に「テスト」書き込みCSV

abandoned 
static 
test_a_1 
test_b_2 
abandoned 
test_b_3 

で始まるそれらのためのcsvファイルをしようとしています次のコードは機能しません。 「test_a_1」はリストに含まれているからといって、あなたの洞察力

substr="test" 
if substr in df['result']: 
    df.to_csv("C:/Projects/result.csv",sep=',',index=False) 
+0

あなたが作業していないと言っても、それはまったく書いていないか、間違ったことを書いているということですか? – depperm

+0

それは書きません。 df ['result'] 'のsubstrの結果は偽です – Prasad

答えて

1

>>> test = 'test1' 
>>> testlist = ['test1', 'test2'] 
>>> if 'test' in test: 
...  print('hi') 
... 
hi 
>>> if 'test' in testlist: 
...  print('hi') 
... 
>>> 

これは動作します:Pythonは、 "[リスト]で[文字列]場合は、" ステートメントを評価する方法の

例結果が「テスト」の行のみが含まれています。

df[df.result.str.contains('^test.*')].to_csv("C:/Projects/result.csv",sep=',',index=False) 
3

を事前に感謝しますが、「テスト」は、Pythonのロジックで であることを意味するものではありません。何を意味することは、あなたがしたいということであれば

substr="test" 
for val in df['result']: 
    if substr in val: 
     # Do stuff 
     # And optionally (if you only need one CSV per dataframe rather than one CSV per result): 
     break 
+0

ありがとうございました..これはすべての結果値の出力ですが、私はcsvの' test_a_1'、 'test_b_2'、' test_b_3'の行を見たいと思っています。 – Prasad

+0

スコメスの解決策のように見えますが、セクシーな1ライナーです。 ;) –

0

これは動作します:

df['temp'] = [1 if 'test' in df['result'][k] for k in df.index else 0] 
df['result'][df['temp']==1].to_csv("/your/path", sep=',', index=False) 
関連する問題