打印 table 中特定元素的列表
Printing out a list for specific elements in a table
我有两个列表
x=[1,2,5,4,3]
y=[4,8,9,2,18]
和一个类似于下面的 .csv table。
ID
年龄
组
姓名
1
4
3
山姆
2
50
1
拉吉
3
18
9
约翰
我的目标是为 (x,y) and (Id,Age)
中的元素打印 Group
列表。例如:由于 (1,4)
在 (x,y)
中,也在 (Id,Age)
中,因此列表将包含 3
。 (3,18)
与 (x,y)
和 (Id, Age)
中的情况类似。那么我的结果将是这些数字的列表,[3,9]
。
我厌倦了 result=df[df['ID'].isin(x), df['Age'].isin(y)]['Group']
但这让我无处不在。我被困在下一步该做什么上。任何帮助将不胜感激。
您尝试做的似乎是 AND
,这是用
完成的
df[df['ID'].isin(x) & df['Age'].isin(y)]
但是有了这些数据
df = pd.DataFrame([{'ID': 1, 'Age': 4, 'Group': 3, 'Name': 'Sam'},
{'ID': 2, 'Age': 50, 'Group': 1, 'Name': 'Raj'},
{'ID': 3, 'Age': 18, 'Group': 9, 'Name': 'John'},
{'ID': 3, 'Age': 19, 'Group': 9, 'Name': 'John'}])
x = [1, 2, 5, 4, 3]
y = [4, 8, 9, 19, 18]
它也会给出 (3, 19)
行,即使它不是一对
ID Age Group Name
0 1 4 3 Sam
2 3 18 9 John
3 3 19 9 John
你需要逐行查看,这里有一些尝试
pairs = list(zip(x, y))
result = df[pd.Series(zip(df['ID'], df['Age'])).isin(pairs)]['Group']
我有两个列表
x=[1,2,5,4,3]
y=[4,8,9,2,18]
和一个类似于下面的 .csv table。
ID | 年龄 | 组 | 姓名 |
---|---|---|---|
1 | 4 | 3 | 山姆 |
2 | 50 | 1 | 拉吉 |
3 | 18 | 9 | 约翰 |
我的目标是为 (x,y) and (Id,Age)
中的元素打印 Group
列表。例如:由于 (1,4)
在 (x,y)
中,也在 (Id,Age)
中,因此列表将包含 3
。 (3,18)
与 (x,y)
和 (Id, Age)
中的情况类似。那么我的结果将是这些数字的列表,[3,9]
。
我厌倦了 result=df[df['ID'].isin(x), df['Age'].isin(y)]['Group']
但这让我无处不在。我被困在下一步该做什么上。任何帮助将不胜感激。
您尝试做的似乎是 AND
,这是用
df[df['ID'].isin(x) & df['Age'].isin(y)]
但是有了这些数据
df = pd.DataFrame([{'ID': 1, 'Age': 4, 'Group': 3, 'Name': 'Sam'},
{'ID': 2, 'Age': 50, 'Group': 1, 'Name': 'Raj'},
{'ID': 3, 'Age': 18, 'Group': 9, 'Name': 'John'},
{'ID': 3, 'Age': 19, 'Group': 9, 'Name': 'John'}])
x = [1, 2, 5, 4, 3]
y = [4, 8, 9, 19, 18]
它也会给出 (3, 19)
行,即使它不是一对
ID Age Group Name
0 1 4 3 Sam
2 3 18 9 John
3 3 19 9 John
你需要逐行查看,这里有一些尝试
pairs = list(zip(x, y))
result = df[pd.Series(zip(df['ID'], df['Age'])).isin(pairs)]['Group']