簡體   English   中英

Pandas Dataframe 中的索引列返回 NaN

[英]Indexing column in Pandas Dataframe returns NaN

我在嘗試索引我的數據框時遇到問題。 如附圖所示,我在數據框中有一列名為“標識符”的列,其中包含大量冗余信息({'print_isbn_canonical':')。 我只想要后面的 ISBN。

    #Option 1 I tried
    testdf2 = testdf2[testdf2['identifiers'].str[26:39]]
    
    #Option 2 I tried
    testdf2['identifiers_test'] = testdf2['identifiers'].str.replace("{'print_isbn_canonical': '","")

不幸的是,這兩個選項都將數據框列變成只包含 NaN 值的列

請幫忙! 我似乎無法找到解決方案並嘗試了幾件事。 謝謝大家!

數據框的示例圖像

如果你的列identifiers的內容是真正的 dict / json 類型,你可以使用字符串訪問器str[]來按鍵訪問 dict 值,如下所示:

testdf2['identifiers_test'] = testdf2['identifiers'].str['print_isbn_canonical']

演示

data = {'identifiers': [{'print_isbn_canonical': '9780721682167', 'eis': '1234'}]}
df = pd.DataFrame(data)

df['isbn'] = df['identifiers'].str['print_isbn_canonical']

print(df)

                                                identifiers           isbn
0  {'print_isbn_canonical': '9780721682167', 'eis': '1234'}  9780721682167

試試這個:

testdf2['new_column'] = testdf2.apply(lambda r : r.identifiers[26:39],axis=1)

這里我假設標識符列是字符串類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM