Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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 如何在pandas中搜索值的元组?_Python_Python 3.x_Pandas - Fatal编程技术网

Python 如何在pandas中搜索值的元组?

Python 如何在pandas中搜索值的元组?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我正在尝试编写一个函数,以在数据帧中交换目标字典和结果。我想匹配一组值并交换新值。我尝试按如下方式构建它,但行选择不起作用。我觉得我缺少了一些重要的功能 import pandas testData=pandas.DataFrame([["Cats","Parrots","Sandstone"],["Dogs","Cockatiels","Marble"]],columns=["Mammals","Birds","Rocks"]) target=("Mammals","Birds") swapV

我正在尝试编写一个函数,以在数据帧中交换目标字典和结果。我想匹配一组值并交换新值。我尝试按如下方式构建它,但行选择不起作用。我觉得我缺少了一些重要的功能

import pandas
testData=pandas.DataFrame([["Cats","Parrots","Sandstone"],["Dogs","Cockatiels","Marble"]],columns=["Mammals","Birds","Rocks"])
target=("Mammals","Birds")
swapVals={("Cats","Parrots"):("Rats","Canaries")}
for x in swapVals:
    #Attempt 1:
    #testData.loc[x,target]=swapVals[x]
    #Attempt 2:
    testData[testData.loc[:,target]==x,target]=swapVals[x]

这是用Python2编写的,但是基本思想应该适合您。它使用应用功能:

import pandas
testData=pandas.DataFrame([["Cats","Parrots","Sandstone"],["Dogs","Cockatiels","Marble"]],columns=["Mammals","Birds","Rocks"])
swapVals={("Cats","Parrots"):("Rats","Canaries")}
target=["Mammals","Birds"]

def swapper(in_row):
    temp =tuple(in_row.values)
    if temp in swapVals:
        return list(swapVals[temp])
    else:
        return in_row

testData[target] = testData[target].apply(swapper, axis=1)

testData
import pandas
testData=pandas.DataFrame([["Cats","Parrots","Sandstone"],["Dogs","Cockatiels","Marble"]],columns=["Mammals","Birds","Rocks"])
swapVals={("Cats","Parrots"):("Rats","Canaries"), ("Dogs","Cockatiels"):("Dogs","Cockatiels")}
target=["Mammals","Birds"]

testData[target] = testData[target].apply(lambda x: list(swapVals[tuple(x.values)]), axis=1)

testData
请注意,如果将其他键加载到dict中,则可以在不使用交换程序功能的情况下执行应用:

import pandas
testData=pandas.DataFrame([["Cats","Parrots","Sandstone"],["Dogs","Cockatiels","Marble"]],columns=["Mammals","Birds","Rocks"])
swapVals={("Cats","Parrots"):("Rats","Canaries")}
target=["Mammals","Birds"]

def swapper(in_row):
    temp =tuple(in_row.values)
    if temp in swapVals:
        return list(swapVals[temp])
    else:
        return in_row

testData[target] = testData[target].apply(swapper, axis=1)

testData
import pandas
testData=pandas.DataFrame([["Cats","Parrots","Sandstone"],["Dogs","Cockatiels","Marble"]],columns=["Mammals","Birds","Rocks"])
swapVals={("Cats","Parrots"):("Rats","Canaries"), ("Dogs","Cockatiels"):("Dogs","Cockatiels")}
target=["Mammals","Birds"]

testData[target] = testData[target].apply(lambda x: list(swapVals[tuple(x.values)]), axis=1)

testData

这是用Python2编写的,但是基本思想应该适合您。它使用应用功能:

import pandas
testData=pandas.DataFrame([["Cats","Parrots","Sandstone"],["Dogs","Cockatiels","Marble"]],columns=["Mammals","Birds","Rocks"])
swapVals={("Cats","Parrots"):("Rats","Canaries")}
target=["Mammals","Birds"]

def swapper(in_row):
    temp =tuple(in_row.values)
    if temp in swapVals:
        return list(swapVals[temp])
    else:
        return in_row

testData[target] = testData[target].apply(swapper, axis=1)

testData
import pandas
testData=pandas.DataFrame([["Cats","Parrots","Sandstone"],["Dogs","Cockatiels","Marble"]],columns=["Mammals","Birds","Rocks"])
swapVals={("Cats","Parrots"):("Rats","Canaries"), ("Dogs","Cockatiels"):("Dogs","Cockatiels")}
target=["Mammals","Birds"]

testData[target] = testData[target].apply(lambda x: list(swapVals[tuple(x.values)]), axis=1)

testData
请注意,如果将其他键加载到dict中,则可以在不使用交换程序功能的情况下执行应用:

import pandas
testData=pandas.DataFrame([["Cats","Parrots","Sandstone"],["Dogs","Cockatiels","Marble"]],columns=["Mammals","Birds","Rocks"])
swapVals={("Cats","Parrots"):("Rats","Canaries")}
target=["Mammals","Birds"]

def swapper(in_row):
    temp =tuple(in_row.values)
    if temp in swapVals:
        return list(swapVals[temp])
    else:
        return in_row

testData[target] = testData[target].apply(swapper, axis=1)

testData
import pandas
testData=pandas.DataFrame([["Cats","Parrots","Sandstone"],["Dogs","Cockatiels","Marble"]],columns=["Mammals","Birds","Rocks"])
swapVals={("Cats","Parrots"):("Rats","Canaries"), ("Dogs","Cockatiels"):("Dogs","Cockatiels")}
target=["Mammals","Birds"]

testData[target] = testData[target].apply(lambda x: list(swapVals[tuple(x.values)]), axis=1)

testData

请提供所需数据样本,您希望实现请提供所需数据样本,您希望实现