[英]Pandas Dataframe and Series join returns empty Dataframe or NaN column
[英]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.