基于子字符串条件在python中编写csv

时间:2016-09-29 15:45:39

标签: python string csv substring

我在数据框(result)中有以下df变量,我正在尝试为那些以" test"

开头的人输出csv文件
abandoned
static
test_a_1
test_b_2
abandoned
test_b_3

以下代码无效。提前感谢您的见解

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

3 个答案:

答案 0 :(得分:3)

仅仅因为" test_a_1"在列表中并不意味着"测试"是, 在Python逻辑中。

Python如何评估"如果[list]中的[string]"语句:

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

这样可行:

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

答案 1 :(得分:1)

如果您的意思是要创建一个仅包含结果为starta with' test'的csv,请使用以下内容:

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

答案 2 :(得分: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)