python - 在追加到 pandas 数据框时创建新列

标签 python python-2.7 pandas dataframe

我有一个包含约 12,000 列和几百行的数据框,如下所示:

Date     id1    id2    id3    id4    ...    id12000
1/4/16   100    78     103.5  15            35
1/5/16   100.5  78     104    16            37
1/6/16   99.5   78.5   104.5  16.5          37
1/7/16   100.1  77     104.2  13            37
1/8/16   100.3  76.5   104.2  13.5          33
1/11/16  99.8   77     103.7  13.5          34
...
5/1/17   101.1  82     103.6  12            33

每天,我都会收到一个新的数据框,我需要将其添加到此数据框中。例如,我可能会得到 5 月 2 日的数据框,如下所示:

Date     id1    id3    id4    id6    ...    id12100
5/2/17   100    103    12.5   15            100

但是该数据框每天可能会包含一些新的 ID(列),并且还可能会省略一些以前存在的 ID。

我希望我的新数据框在每次有新 ID 时添加列,并用 NaN 填充该列的所有先前值。我还希望以前在数据框中的任何 ID 单元格都用 NaN 填充。因此,例如,上面两个示例数据帧的连接将如下所示:

Date     id1    id2    id3    id4    ...    id12000   id12100
1/4/16   100    78     103.5  15            35        NaN
1/5/16   100.5  78     104    16            37        NaN
1/6/16   99.5   78.5   104.5  16.5          37        NaN
1/7/16   100.1  77     104.2  13            37        NaN
1/8/16   100.3  76.5   104.2  13.5          33        NaN
1/11/16  99.8   77     103.7  13.5          34        NaN
...
5/1/17   101.1  82     103.6  12            33        NaN
5/2/17   100    NaN    103    12.5          NaN       100

但是,如果我在数据框中已有的日期运行此命令,我只想用新值替换旧值。

我已经和这个问题争论了一段时间了,不太清楚我需要如何做到这一点,在正确格式化日期之间,以便我可以检查数据框中是否有重复项,以正确地附加/加入/合并/等等。旧值(value)观与新值(value)观。我有几个不同的地方,通用函数对我来说非常有用,所以我希望有人遇到同样的问题,并且有一个我可以使用的优雅的解决方案。

提前致谢!

最佳答案

In [43]: df
Out[43]:
     Date    id1   id2    id3   id4
0  1/4/16  100.0  78.0  103.5  15.0
1  1/5/16  100.5  78.0  104.0  16.0
2  1/6/16   99.5  78.5  104.5  16.5

In [44]: new
Out[44]:
     Date  id1  id3   id4  id6  id12100
0  1/6/16   11   11  11.0   11      111
1  5/2/17  100  103  12.5   15      100

In [45]: df.set_index('Date').append(new.set_index('Date'))
Out[45]:
          id1  id12100   id2    id3   id4   id6
Date
1/4/16  100.0      NaN  78.0  103.5  15.0   NaN
1/5/16  100.5      NaN  78.0  104.0  16.0   NaN
1/6/16   99.5      NaN  78.5  104.5  16.5   NaN
1/6/16   11.0    111.0   NaN   11.0  11.0  11.0
5/2/17  100.0    100.0   NaN  103.0  12.5  15.0

关于python - 在追加到 pandas 数据框时创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43745039/

相关文章:

python - 将列表中的字符串加在一起

python-jira获取json

python - 使用不同的 y 轴绘制 pandas 数据框中的条形图和线条

python - Kivy - 转换之间的黑屏

python - 该 ROC 曲线图看起来很奇怪(sklearn SVC)

python - 八进制字符串文字和八进制命令行参数

python - 拆分 .csv,同时保留描述第一行

python - django-social-auth - 缺少 HTTPSConnection

python - 如何对 pandas groupby 列中的特定值进行分组?

python - args 元素似乎不在 apply 函数内运行