Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据来自另一个字段的匹配数据从dataframe获取特定列的值?_Python_Pandas - Fatal编程技术网

Python 如何根据来自另一个字段的匹配数据从dataframe获取特定列的值?

Python 如何根据来自另一个字段的匹配数据从dataframe获取特定列的值?,python,pandas,Python,Pandas,我有一个csv文件,我已经导入到熊猫数据框。档案如下: Col1 Col2 Col3 Col4 AB 12 AB12 1,11,12,45 CD 34 CD34 4,6,98,78,12 EF 56 EF56 9,41,52,63,47 因此,我用以下代码创建了Col3: df['Col3'] = df['Col1'].str.cat(df['Col2'],sep='')

我有一个csv文件,我已经导入到熊猫数据框。档案如下:

Col1     Col2     Col3     Col4
AB       12       AB12     1,11,12,45
CD       34       CD34     4,6,98,78,12
EF       56       EF56     9,41,52,63,47
因此,我用以下代码创建了Col3:

df['Col3'] = df['Col1'].str.cat(df['Col2'],sep='')
现在,我有一个值列表

values_list = [['AB','12'],['CD','34'],['EF','56']]
因此,我想将列表的值与数据帧的值相匹配,然后从“Col4”导入值。我试着用下面的方法来做这件事

def extract_values(key):
col4_value = df['Col4'].np.where(df['Col3']==key)
return col4_value

for entry in values_list:
key = ''.join(entry)
extract_values(key)
然而,这是行不通的。关于如何解决这个问题有什么建议吗? 预期产出为:

1,11,12,45
4,6,98,78,12
9,41,52,63,47

不清楚这些值在
Col4
中存储的准确程度,因此我将它们视为一组数字和逗号。你可以做:

output_values = [list(df[(df['Col1'] == item[0]) & (df['Col2'].astype(str) == item[1])]['Col4']) for item in values_list] #Get the values from the corresponding Col4 where it fits Col1 and Col2
output_values = [list(eval(item[0])) for item in output_values] #Transform the string to a list of values
输出:

[[1, 11, 12, 45], [4, 6, 98, 78, 12], [9, 41, 52, 63, 47]]

请在问题中添加预期输出的示例。是的,我已添加示例输出。