python2.7 数据框:从现有列值添加新列

tktktk0711

我有一个如下的数据框,只是一个例子。

date       y     w   diff
 2010-1-1   3     1    3
 2010-1-2   4     1    4
 2010-1-3   5     1    2
 2010-1-4   6     2    5
 2010-1-5   7     2    6
 2010-1-6   8     2    5
 2010-1-7   9     3    2
 2010-1-8   10    4    4
 2010-1-9   11    5    5
 2010-1-10  12    6    6
 2010-1-11  13    5    6

现在例如 i 是数据框的索引,我想为数据框添加新列,有三个新列名,如 p1、p2、p3,但值为前两个日期的值。当然前两行值p1,p2是Nan。从3-5行,p1、p2的值都是3、4,p3的值是前两行的最后一个diff的值,我的意思是从3-5行p3的值都是4。我使用五行作为一个句点。我的意思是 8-10 行,p1、p2、p3 的值是 8、9、2。新的数据框如下所示:

 date       y     w   diff  p1  p2  p3
 2010-1-1   3     1    3    Nan Nan Nan
 2010-1-2   4     1    4    Nan Nan Nan
 2010-1-3   5     1    2    3   4   4
 2010-1-4   6     2    5    3   4   4
 2010-1-5   7     2    6    3   4   4
 2010-1-6   8     2    5    Nan Nan Nan 
 2010-1-7   9     3    2    Nan Nan Nan
 2010-1-8   10    4    4    8   9    2
 2010-1-9   11    5    5    8   9    2
 2010-1-10  12    6    6    8   9    2
 2010-1-11  13    5    6    Nan Nan Nan

如果有什么你不明白我的问题,请评论。谢谢!

耶斯列

您可以使用groupbyby array gcreated byarange和 floor Division 与自定义函数,shift然后根据要求在 numpy 数组中设置值。最后添加到原始作者join

df['date'] = pd.to_datetime(df['date'])
g = np.arange(len(df.index)) // 5

def f(x):
    x = x.shift(2)
    a = x.values
    if a.shape[0] > 3:
        a[3,1] = a[3, 0]
        a[3,0] = a[2, 0]
        a[2] = a[3]
        a[4] = a[3]
    return pd.DataFrame(a, index=x.index, columns=['p1','p2','p3'])


df1 = df.groupby(g)['y','w','diff'].apply(f)
print (df1)
     p1   p2   p3
0   NaN  NaN  NaN
1   NaN  NaN  NaN
2   3.0  4.0  4.0
3   3.0  4.0  4.0
4   3.0  4.0  4.0
5   NaN  NaN  NaN
6   NaN  NaN  NaN
7   8.0  9.0  2.0
8   8.0  9.0  2.0
9   8.0  9.0  2.0
10  NaN  NaN  NaN

df2 = df.join(df1)
print (df2)
         date   y  w  diff   p1   p2   p3
0  2010-01-01   3  1     3  NaN  NaN  NaN
1  2010-01-02   4  1     4  NaN  NaN  NaN
2  2010-01-03   5  1     2  3.0  4.0  4.0
3  2010-01-04   6  2     5  3.0  4.0  4.0
4  2010-01-05   7  2     6  3.0  4.0  4.0
5  2010-01-06   8  2     5  NaN  NaN  NaN
6  2010-01-07   9  3     2  NaN  NaN  NaN
7  2010-01-08  10  4     4  8.0  9.0  2.0
8  2010-01-09  11  5     5  8.0  9.0  2.0
9  2010-01-10  12  6     6  8.0  9.0  2.0
10 2010-01-11  13  5     6  NaN  NaN  NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据 Python 数据框中现有的值向新列添加值?

来自分类Dev

将列表的列表作为列添加到python中的现有数据框

来自分类Dev

(Python)根据现有列的值创建新列

来自分类Dev

如何在现有Excel文件的新列中添加数据(python列表)?

来自分类Dev

Python pandas:如何在数据框列中的现有值之间填充值?

来自分类Dev

Python:根据数据帧中的现有列添加一个带有日期的新列

来自分类Dev

Python Pandas在现有列的基础上添加新列-“值的长度与索引的长度不匹配”

来自分类Dev

Python:从现有列创建新列

来自分类Dev

在2列中添加具有相同值的新列

来自分类Dev

如何在Python数据框中添加具有字典的字符串值的列

来自分类Dev

使用 Pandas 根据现有列值向数据框添加新列

来自分类Dev

Python2标记化并添加到字典

来自分类Dev

在Python的数据框的行末添加特定的列值

来自分类Dev

带有xpath的Python2 Scrape html

来自分类Dev

Python2 + SQLite不返回所有行

来自分类Dev

Python2 中的 with 和 if 有什么区别?

来自分类Dev

使用python在单独的数据框中查找的值来计算新数据框列中的值

来自分类Dev

Python:从现有列创建新列并添加生成的数字

来自分类Dev

如何通过搜索列表中给定的关键字值在Python pandas数据框中添加新列?

来自分类Dev

Python Pandas:如果条件为true,则将现有列值放入新列中

来自分类Dev

如何使用旧数据框中的信息预测新 Python 数据框中列的值

来自分类Dev

我想通过在数据框中添加2个连续的列来插入新列

来自分类Dev

如果行值是串联的,python pandas数据框将创建带有标签(0或1)的新列

来自分类Dev

从现有的Python组织和创建新的数据框

来自分类Dev

Python Dataframe - 根据现有列值的长度创建一个具有值的新列

来自分类Dev

如何使用数据框中的2列中的值使用字典分配新列

来自分类Dev

使用Python从Pandas数据框中的现有日期时间列创建星期几列

来自分类Dev

根据其他列中的值在python 3(pandas)数据框中创建新列

来自分类Dev

ValueError:传递了4列,将python列表转换为数据框时,传递的数据有3列。如果3通过,如何添加空白值?

Related 相关文章

  1. 1

    如何根据 Python 数据框中现有的值向新列添加值?

  2. 2

    将列表的列表作为列添加到python中的现有数据框

  3. 3

    (Python)根据现有列的值创建新列

  4. 4

    如何在现有Excel文件的新列中添加数据(python列表)?

  5. 5

    Python pandas:如何在数据框列中的现有值之间填充值?

  6. 6

    Python:根据数据帧中的现有列添加一个带有日期的新列

  7. 7

    Python Pandas在现有列的基础上添加新列-“值的长度与索引的长度不匹配”

  8. 8

    Python:从现有列创建新列

  9. 9

    在2列中添加具有相同值的新列

  10. 10

    如何在Python数据框中添加具有字典的字符串值的列

  11. 11

    使用 Pandas 根据现有列值向数据框添加新列

  12. 12

    Python2标记化并添加到字典

  13. 13

    在Python的数据框的行末添加特定的列值

  14. 14

    带有xpath的Python2 Scrape html

  15. 15

    Python2 + SQLite不返回所有行

  16. 16

    Python2 中的 with 和 if 有什么区别?

  17. 17

    使用python在单独的数据框中查找的值来计算新数据框列中的值

  18. 18

    Python:从现有列创建新列并添加生成的数字

  19. 19

    如何通过搜索列表中给定的关键字值在Python pandas数据框中添加新列?

  20. 20

    Python Pandas:如果条件为true,则将现有列值放入新列中

  21. 21

    如何使用旧数据框中的信息预测新 Python 数据框中列的值

  22. 22

    我想通过在数据框中添加2个连续的列来插入新列

  23. 23

    如果行值是串联的,python pandas数据框将创建带有标签(0或1)的新列

  24. 24

    从现有的Python组织和创建新的数据框

  25. 25

    Python Dataframe - 根据现有列值的长度创建一个具有值的新列

  26. 26

    如何使用数据框中的2列中的值使用字典分配新列

  27. 27

    使用Python从Pandas数据框中的现有日期时间列创建星期几列

  28. 28

    根据其他列中的值在python 3(pandas)数据框中创建新列

  29. 29

    ValueError:传递了4列,将python列表转换为数据框时,传递的数据有3列。如果3通过,如何添加空白值?

热门标签

归档