【发布时间】:2017-04-05 00:47:13
【问题描述】:
对使用 numpy 的 where 条件有疑问。我可以将 where 条件与 == 运算符一起使用,但不能将 where 条件与“是另一个字符串的一个字符串子字符串吗?”一起使用。
代码:
import pandas as pd
import datetime as dt
import numpy as np
data = {'name': ['Smith, Jason', 'Bush, Molly', 'Smith, Tina',
'Clinton, Jake', 'Hamilton, Amy'],
'age': [42, 52, 36, 24, 73],
'preTestScore': [4, 24, 31, 2, 3],
'postTestScore': [25, 94, 57, 62, 70]}
df = pd.DataFrame(data, columns = ['name', 'age', 'preTestScore',
'postTestScore'])
print "BEFORE---- "
print df
print "AFTER----- "
df["Smith Family"]=np.where("Smith" in df['name'],'Y','N' )
print df
输出:
BEFORE-----
name age preTestScore postTestScore
0 Smith, Jason 42 4 25
1 Bush, Molly 52 24 94
2 Smith, Tina 36 31 57
3 Clinton, Jake 24 2 62
4 Hamilton, Amy 73 3 70
AFTER-----
name age preTestScore postTestScore Smith Family
0 Smith, Jason 42 4 25 N
1 Bush, Molly 52 24 94 N
2 Smith, Tina 36 31 57 N
3 Clinton, Jake 24 2 62 N
4 Hamilton, Amy 73 3 70 N
为什么 numpy.where 条件在上述情况下不起作用。 曾期望史密斯家族有价值观 是 ñ 是 ñ 否
但是没有得到那个输出。上面看到的输出都是 N,N,N,N,N 而不是在 df['name'] 中使用条件 "Smith" (也尝试过 str(df['name']).find("Smith") >-1 ),但这也不起作用。
知道哪里出了问题或者我可以做些什么不同的事情吗?
【问题讨论】:
标签: python pandas numpy substring conditional-statements