[英]Return cell value in Pandas multi-index dataframe as string
我正在嘗試從大約11.000行和10列的數據框中返回單個單元格值:
df = pd.DataFrame({ 'A' : ('foo', 'foo', 'bar', 'bar'),
'B' : ('horse', 'car', 'horse', 'car'),
'C' : ('red', 'green', 'blue', 'black')})
df
A B C
0 foo horse red
1 foo car green
2 bar horse blue
3 bar car black
我嘗試了loc的幾個版本,但總是得到一個返回的對象,而不是實際值(“綠色”)。 例如:
df.loc[(df['A'] == 'foo') & (df['B'] == 'car'), 'C']
收益:
1 green
Name: C, dtype: object
結果是正確的,但它作為對象而不是字符串返回。 我還嘗試將A和B列設置為多索引框架中的索引。 位置代碼會更容易,但結果相同。
那么如何將值作為字符串而不是作為對象來獲取呢?
您正在制作系列,想要第一個對象。
您可以將pd.Series等效為長度為1的列表: ['green']
。 如果是列表,則將執行list[0]
。
但是,pandas系列子集基於索引,因此您無法執行此操作。 要在不知道序列索引的情況下進行子集化,請使用iloc[0]
:
df.loc[(df['A'] == 'foo') & (df['B'] == 'car'), 'C'].iloc[0]
'green'
使用item
:
pandas.Series.item
Series.item()以python標量的形式返回基礎數據的第一個元素
df.loc[(df['A'] == 'foo') & (df['B'] == 'car'), 'C'].item()
輸出:
'green'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.