Is there a way to query the df based on the row values and column header? Looking to pass through Disney
, World
, and Value
as variables to return 55
. I tried using the df.loc
function but received errors. The Key1
and Key2
headers are set as the df.index
.
Pandas Dataframe
Key1 | Key2 | Value |
---|---|---|
Disney | World | 55 |
Disney | Land | 97 |
CodePudding user response:
IIUC, you create a function, pass the parameters and get the value in return
def findval(df, Key1, Key2):
return df[(df['Key1'] == Key1) &
(df['Key2'] == Key2)]['Value']
findval(df, 'Disney', 'Land')
1 97
Name: Value, dtype: int64
CodePudding user response:
You can get values of 'Value' to with this code
pd.read_csv(PATH)
data = data.dropna()
Value = data['Value'].values # Get values of 'Value'
# Key2 = data['Key2'].values # Get values of 'Key2'
print(Value)
And output will be
[55, 97]
CodePudding user response:
I think you just need this if key1 and key2 are in the index as a multiindex.
df.loc[('Disney', 'World'), 'Value']
CodePudding user response:
Just issue a multi-index expression on the series directly:
df.Value['Disney', 'World']