Python数据筛选

现在有一组数据user_data如下

          user_id	                name  review_count  yelping_since	  useful	funny	  cool  
0	ntlvfPzc8eglqvk92iDIAw	Rafael	 553	2007-07-06 03:27:11	   628      225 	 227   
1	FOBRPlBHa3WPHFB5qYDlVg	Michelle 564	2008-04-28 01:29:25	   790	    316       400 
2	zZUnPeh2hEp0WydbAZEOOg	Martin	 60	    2008-08-28 23:40:05	   151	    125	      103      
3	QaELAmRcDc5TfJEylaaP8g	John	 206	2008-09-20 00:08:14	   233	    160       84       
4	xvu8G900tezTzbbfqmTKvA	Anne	 485	2008-08-09 00:30:27	  1265	    400	      512   

然后现在有一个类型为series的id_list包含了其中几个user_id.

           user_id
0	ntlvfPzc8eglqvk92iDIAw
1	zZUnPeh2hEp0WydbAZEOOg
2	V3t6VJNcO7yXslIJHG7nyA
3   QaELAmRcDc5TfJEylaaP8g

其中包含的id有的在数据集的use_id中存在,有的不在数据集的use_id中存在。

现在想通过这一列id_list进行过筛,找出user_id中包含id_list中存在的数据的数据,请问代码怎么写。

我尝试了很多

以下代码都不行

	
uuid = uuid.filter(id_list)
 
uuid = user_data[user_data['user_id'],]==id_list]

uuid = user_data[user_data['user_id'] in id_list]

 

import pandas as pd

user_data = pd.read_csv("C:\\Users\ECIDI\Desktop\\test.csv")
print(user_data)
id_list = pd.Series(
    ["ntlvfPzc8eglqvk92iDIAw", "zZUnPeh2hEp0WydbAZEOOg", "V3t6VJNcO7yXslIJHG7nyA", "QaELAmRcDc5TfJEylaaP8g"]
    )

uuid = user_data[user_data.user_id.str.contains('|'.join(list(id_list)))]
print(uuid)

两种写法都在这了:

uuid = user_data[user_data['user_id'].isin (list(id_list))]

uuid=pd.concat([user_data[user_data['user_id']==i] for i in id_list])

看到你说有MySQL 但是没有mysql...如果是Json格式的话,用filter就能解决...如果是sql的话...用 select * from table1 where user_id in (select user_id from table2)

就能解决

 

看你怎么做了

深白色和bj_0163_bj的好用,其他的不太好用,bj_0163_bj另外的相同问题给过了,就给深白色了

谢谢