现在有一组数据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另外的相同问题给过了,就给深白色了
谢谢