当只需要两个'b‘和'c’时,下面的最后一个print语句显示了三个项目。在结果中不包含空字符串的方法是什么?
print(sys.version)
print(np.__version__)
print(pd.__version__)
3.6.4
1.14.2
0.22.0
import string
ds1 = pd.Series(list(string.ascii_lowercase[:3]), (range(3)))
ds2 = pd.Series(list(string.ascii_lowercase[1:4]), (range(1,4)))
ds1[0]=''
ds2[3]=''
print(ds1)
0
1 b
2 c
dtype: object
print(ds2)
1 b
2 c
3
dtype: object
print(ds1[ds1.isin(ds2)]) # returns three items, only want 'b' and 'c'
0
1 b
2 c
dtype: object
我尝试使用isnull(),但无济于事。
print(ds1.isnull())
输出:
0 False
1 False
2 False
dtype: bool
发布于 2018-06-10 08:27:15
空字符串并不对应于NaN、None等,只需像往常一样过滤掉它们即可。
ds1[ds1.isin(filter(None, ds2))]
1 b
2 c
dtype: object
https://stackoverflow.com/questions/50779612
复制相似问题