亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

pandas - 如果 dtype 列表(對象)列中的值具有特定值,則查找行

pandas - 如果 dtype 列表(對象)列中的值具有特定值,則查找行

白衣非少年 2023-02-07 14:35:53
給定如下數據框   A  B  C-1  D  BTP           Type C1           Type C20  0  1    0  0    0               NaN          [Type B]1  0  2    1  1   14          [Type B]          [Type B]2  0  3    2  2   28          [Type A]          [Type B]3  0  4    3  3   42  [Type A, Type B]  [Type A, Type B]4  0  5    4  4   56          [Type A]  [Type A, Type B]想要獲取具有Type A列值的行Type C1和應返回行索引 342的列。BTP嘗試了以下,但給出了錯誤KeyError: Falsedf.loc[(df['BTP'] == 42) & ('Type A' in df['Type C1'])]我最終想要做的是獲取符合上述條件的行(這將是單行)并提取列的值B并C-1作為字典{'B_val': 4, 'C_val': 3}
查看完整描述

3 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

您可以使用


>>> type_a = df['Type C1'].apply(pd.Series).eq('Type A').any(1)

>>> df[df['BTP'].eq(42) & type_a]

   A  B  C-1  D  BTP           Type C1           Type C2

3  0  4    3  3   42  [Type A, Type B]  [Type A, Type B]


查看完整回答
反對 回復 2023-02-07
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

使用,Series.str.join連接列中的列表Type C1,然后我們可以Series.str.contains在此列上使用來檢查給定的字符串 ieType A是否存在于系列中,最后我們可以使用布爾值過濾數據幀的行mask

mask = df['BTP'].eq(42) & df['Type C1'].str.join('-').str.contains(r'\bType A\b')

df = df[mask]

結果:


# print(df)


   A  B  C-1  D  BTP           Type C1           Type C2

3  0  4    3  3   42  [Type A, Type B]  [Type A, Type B]


查看完整回答
反對 回復 2023-02-07
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

我使用自定義函數解決了這個問題,根據所考慮的列表是否包含“類型 A”,為每一行返回真/假值列表。


# Check if elem is present in column 'col'

def has_elem(col, elem):

    result = []

    for c in col:

        if elem in c:

            result.append(True)

        else:

            result.append(False)

    return result


# Filter

df.loc[(df['BTP'] == 42) & has_elem(df['Type_C1'], 'Type A'), :]

您的代碼不起作用的原因是因為第二個過濾器子句在 Series 對象中'Type A' in df['Type_C1']查找字符串的成員資格,并因此返回。相反,您需要返回一系列 True/False 值,數據框中的每一行 1。'Type A'df['Type_C1']False


查看完整回答
反對 回復 2023-02-07
  • 3 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號