【问题标题】:Filling DataFrame Pandas Python填充 DataFrame Pandas Python
【发布时间】:2019-04-26 05:59:07
【问题描述】:

我有一个类似的数据集,即使代码给了我正确的输出;我不想使用三个 for 循环。有没有更好的方法来做到这一点?

import pandas as pd

col = ["a","b","c","d"]
index = ["0","1","2","3"]
dict_ = {("0","a"):8,
         ("1","a"):3,
         ("3","b"):2}

df = pd.DataFrame(columns=col,index=index)
for i in range(len(dict_)):
    for j in range(len(df)):
        for k in range(len(df)):
            if (str(df.index[j]),str(df.columns[k])) == dict_.keys()[i]:
                df.at[df.index[j],df.columns[k]] = dict_.values()[i]

print df

【问题讨论】:

    标签: python pandas performance dataframe for-loop


    【解决方案1】:

    IIUC,使用reindex

    pd.Series(dict_).unstack().reindex(index=index,columns=col)
    Out[245]: 
         a    b   c   d
    0  8.0  NaN NaN NaN
    1  3.0  NaN NaN NaN
    2  NaN  NaN NaN NaN
    3  NaN  2.0 NaN NaN
    

    【讨论】:

    • 漂亮!谢谢你:')
    • @WB.. 总是提供漂亮的解决方案和提示 :-) +1
    猜你喜欢
    • 2015-02-14
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 2022-12-22
    • 2021-04-17
    相关资源
    最近更新 更多