繁体   English   中英

Python: append 字典到 pandas 数据帧行

[英]Python: append dictionary to pandas data frame row

我有以下形式的字典:

{'2018': 21.6, '2019': 29.0, '2020': 134.8}

和以下形式的 pandas dataframe

指数 第 1 列 第 2 列
索引1 名称1 网址1
索引2 名称2 网址2
索引3 名称3 网址3

我现在的目标是将 append 字典到一个固定的行,比如 Index2 的行。 结果 dataframe 然后应该是:

指数 第 1 列 第 2 列 2018 2019 2020
索引1 名称1 网址1
索引2 名称2 网址2 21.6 29.0 134.8
索引3 名称3 网址3

之后,我希望 append 将相同形式的第二个和第三个字典放入具有索引的行中:Index1,然后是 Index3。

使用 python 的最佳方法是什么?

我认为最好的方法是首先通过索引和字典创建新的 DataFrame,然后通过DataFrame.join添加到原始文件中:

d = {'2018': 21.6, '2019': 29.0, '2020': 134.8}

df = df.join(pd.DataFrame([d], index=['Index2']))
print (df)
       Column1 Column2  2018  2019   2020
Index1   Name1    URL1   NaN   NaN    NaN
Index2   Name2    URL2  21.6  29.0  134.8
Index3   Name3    URL3   NaN   NaN    NaN

或者:

d = {'2018': 21.6, '2019': 29.0, '2020': 134.8}

df = df.join(pd.DataFrame.from_dict({'Index2': d}, orient='index'))
print (df)
       Column1 Column2  2018  2019   2020
Index1   Name1    URL1   NaN   NaN    NaN
Index2   Name2    URL2  21.6  29.0  134.8
Index3   Name3    URL3   NaN   NaN    NaN

如果您想使用自定义顺序将数据插入 dataframe 中,您可以尝试以下操作:

import pandas as pd
df = pd.DataFrame([{'col1': 'Name1', 'col2': 'URL1'},
                   {'col1': 'Name2', 'col2': 'URL2'},
                   {'col1': 'Name3', 'col2': 'URL3'}],
                   index=['Index1','Index2','Index3'])

d2 = {'2018': 21.6, '2019': 29.0, '2020': 134.8}
d1 = {'2018': 200, '2019': 29.0, '2020': 134.8}
d3 = {'2018': 500, '2019': 29.0, '2020': 134.8}  

df = df.join(pd.DataFrame([d2,d1,d3], index=['Index2','Index1','Index3']))
print (df)

Output:

         col1  col2   2018  2019   2020
Index1  Name1  URL1  200.0  29.0  134.8
Index2  Name2  URL2   21.6  29.0  134.8
Index3  Name3  URL3  500.0  29.0  134.8

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM