簡體   English   中英

如何在熊貓中嵌套嵌套

[英]How to do nested iterrows in Pandas

我正在嘗試從endResult數據框的“問題”列中獲取數據,並將其放入df中的“ Sprint”列中。 當我運行這段代碼時,它將返回一個數據幀,該數據幀的“問題”列中的第三個條目插入了df中“ Sprint”列的每一行。

for i, r in endResult.iterrows():
    j = endResult['issues'][i]['key']
for x, y in df.iterrows():
    df['Sprint'][x] = j

我得到的是:

短跑
0 SPGC-9445
1個SPGC-9445
2個SPGC-9445

我應該得到的是:

短跑
0 SPGC-14075
1個SPGC-9456
2個SPGC-9445

條目是從包含json的endResult數據框中獲取的。

                                         issues
0  {u'key': u'SPGC-14075', u'fields': {u'status':...
1  {u'key': u'SPGC-9456', u'fields': {u'status': ...
2  {u'key': u'SPGC-9445', u'fields': {u'status': ...

因為您是在第一個循環中將所有內容分配給j ,所以您在每個循環中都覆蓋了該值。 然后,將sprint中的每個值分配給j的值,這將是issues的最后一個值。

解決此問題的一個簡單更改是將j更改為列表,並在循環遍歷時附加每個值。 這也消除了第二個循環,因為您可以從創建的列表中創建一列:

import pandas as pd

endResult = pd.DataFrame({'issues' : [{'key': 1},{'key': 2},{'key': 3}]})
df = pd.DataFrame()

j = []
for i, r in endResult.iterrows():
    j.append(endResult['issues'][i]['key'])

df['Sprint'] = j

暫無
暫無

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

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