使用列表筛选Pandas数据帧

2024-06-28 20:58:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用一个用户名列表和一个掩码进行过滤。以下是两个用户的输入:

data = np.array([['user_id','comment','label'],
            [100,'First comment',0],
            [101,'Buy viagra',1],
            [100,'Buy viagra two',1],
            [101,'Third comment',0],
            [100,'Third comment two',0],
            [101,'Buy drugs',1],
            [100,'Buy drugs two',1],
            [101,'Buy icecream',1],
            [100,'Buy icecream two',1],
            [101,'Buy something',1],
            [100,'Buy something two',1]])

所需输出为:

^{pr2}$

通过传递一个user_id的列表,我得到了一个不正确的输出。在

m = df.user_id.isin([100,101]) & df.label.eq('1')
i = df[m].head(3)
j = df[~m]
df = pd.concat([i, j]).sort_index()
print (df)

但是,如果我只传递一个user_id如下所示,我将得到正确的输出。你能告诉我怎么了吗?谢谢。在

m = df.user_id.eq('101') & df.label.eq('1')

Tags: iddf列表commentbuylabelsomething用户名
1条回答
网友
1楼 · 发布于 2024-06-28 20:58:38

存在问题您的值是user_id列中的字符串,因此需要['100','101']而不是{}:

df = pd.DataFrame(data[1:], columns=data[0])

m = df.user_id.isin(['100','101']) & df.label.eq('1')
i = df[m]
print (i)
   user_id            comment label
1      101         Buy viagra     1
2      100     Buy viagra two     1
5      101          Buy drugs     1
6      100      Buy drugs two     1
7      101       Buy icecream     1
8      100   Buy icecream two     1
9      101      Buy something     1
10     100  Buy something two     1

您可以通过以下方法在一列中检查types:

^{pr2}$

如果需要,请检查所有列:

print (df.applymap(type))

          user_id        comment          label
0   <class 'str'>  <class 'str'>  <class 'str'>
1   <class 'str'>  <class 'str'>  <class 'str'>
2   <class 'str'>  <class 'str'>  <class 'str'>
3   <class 'str'>  <class 'str'>  <class 'str'>
4   <class 'str'>  <class 'str'>  <class 'str'>
5   <class 'str'>  <class 'str'>  <class 'str'>
6   <class 'str'>  <class 'str'>  <class 'str'>
7   <class 'str'>  <class 'str'>  <class 'str'>
8   <class 'str'>  <class 'str'>  <class 'str'>
9   <class 'str'>  <class 'str'>  <class 'str'>
10  <class 'str'>  <class 'str'>  <class 'str'>

相关问题 更多 >