簡體   English   中英

熊貓追加返回具有NaN值的DF

[英]Pandas append returns DF with NaN values

我要將數據從列表追加到pandas df。 我一直在輸入NaN。

基於閱讀的內容,我認為可能不得不提及代碼中每一列的數據類型。

dumps = [];features_df = pd.DataFrame()
for i in range (int(len(ids)/50)): 
    dumps = sp.audio_features(ids[i*50:50*(i+1)])
    for i in range (len(dumps)):
        print(list(dumps[0].values()))
        features_df = features_df.append(list(dumps[0].values()), ignore_index = True)

預期結果,類似-
[0.833,0.539,11,-7.399,0,0.178,0.163,2.1e-06,0.101,0.385,99.947,'audio_features','6MWtB6iiXyIwun0YzU6DFP','spotify:track:6MWtB6iiXyIwun0YzU6DFP',' https:// api。 spotify.com/v1/tracks/6MWtB6iiXyIwun0YzU6DFP ”, ' https://api.spotify.com/v1/audio-analysis/6MWtB6iiXyIwun0YzU6DFP ',149520,4]一行。 實際-
舞蹈能量... duration_ms time_signature
0 NaN NaN ... NaN NaN
1 NaN NaN ... NaN NaN
2 NaN NaN ... NaN NaN
3 NaN NaN ... NaN NaN
4 NaN NaN ... NaN NaN
5 NaN NaN ... NaN NaN

對於所有行

緊密循環中的append()策略並不是實現此目的的好方法。 相反,您可以構造一個空的DataFrame ,然后使用loc指定插入點。 應該使用DataFrame索引。

例如:

import pandas as pd

df = pd.DataFrame(data=[], columns=['n'])
for i in range(100):
    df.loc[i] = i
print(df)
time python3 append_df.py 
   n
0  0
1  1
2  2
3  3
4  4
5  5
6  6
7  7
8  8
9  9

real    0m13.178s
user    0m12.287s
sys 0m0.617s

暫無
暫無

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

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