在多索引数据框中创建新列并填充

拉尔夫23

假设我有以下多索引数据帧,使用以下代码生成:

import pandas as pd, numpy as np

names = ['Name1','Name2','Name3','Name4']
values = ['x1','x2','x3','x4']
categories = ['y1','y2','y3']

x1 = pd.Series([0, 0, 0], index=categories)

index = pd.MultiIndex.from_product([names, values]); placeholders = np.zeros((len(names)*len(values), len(categories)))

df = pd.DataFrame(placeholders, index=index, columns=categories)

for i in names:
    for j in values:
        df.loc[i,j] = x1

           y1   y2   y3
Name1 x1  0.0  0.0  0.0
      x2  0.0  0.0  0.0
      x3  0.0  0.0  0.0
      x4  0.0  0.0  0.0
Name2 x1  0.0  0.0  0.0
      x2  0.0  0.0  0.0
      x3  0.0  0.0  0.0
      x4  0.0  0.0  0.0
Name3 x1  0.0  0.0  0.0
      x2  0.0  0.0  0.0
      x3  0.0  0.0  0.0
      x4  0.0  0.0  0.0
Name4 x1  0.0  0.0  0.0
      x2  0.0  0.0  0.0
      x3  0.0  0.0  0.0
      x4  0.0  0.0  0.0

我将如何使用如下字典来填充与行y3对应的列x1并填充np.nan列中任何其他行的值,y3或者当给定的名称(即 Name1、Name2、Name3 等)不是字典?

{'Name1': 54, 'Name3': 50}

预期输出(0 可能是np.nan):

           y1   y2   y3
Name1 x1  0.0  0.0   54
      x2  0.0  0.0  0.0
      x3  0.0  0.0  0.0
      x4  0.0  0.0  0.0
Name2 x1  0.0  0.0  0.0
      x2  0.0  0.0  0.0
      x3  0.0  0.0  0.0
      x4  0.0  0.0  0.0
Name3 x1  0.0  0.0   50
      x2  0.0  0.0  0.0
      x3  0.0  0.0  0.0
      x4  0.0  0.0  0.0
Name4 x1  0.0  0.0  0.0
      x2  0.0  0.0  0.0
      x3  0.0  0.0  0.0
      x4  0.0  0.0  0.0
CT Zhu

惯用的方式可能是使用 update

In [31]: df2 = pd.DataFrame({(k,'x1'): {'y3': v} for k, v in d.items()}).T

In [32]: df2
Out[32]: 
          y3
Name1 x1  54
Name3 x1  50

In [33]: df.update(df2)

In [34]: df
Out[34]: 
           y1   y2    y3
Name1 x1  0.0  0.0  54.0
      x2  0.0  0.0   0.0
      x3  0.0  0.0   0.0
      x4  0.0  0.0   0.0
Name2 x1  0.0  0.0   0.0
      x2  0.0  0.0   0.0
      x3  0.0  0.0   0.0
      x4  0.0  0.0   0.0
Name3 x1  0.0  0.0  50.0
      x2  0.0  0.0   0.0
      x3  0.0  0.0   0.0
      x4  0.0  0.0   0.0
Name4 x1  0.0  0.0   0.0
      x2  0.0  0.0   0.0
      x3  0.0  0.0   0.0
      x4  0.0  0.0   0.0

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在多索引熊猫数据框中创建多个新列

来自分类Dev

在熊猫数据框中创建多索引列

来自分类Dev

为数据框创建多列索引

来自分类Dev

从多索引数据框中删除列

来自分类Dev

使用np.select创建具有多索引数据框的新列

来自分类Dev

如何根据多索引熊猫数据框中的行索引值创建列?

来自分类Dev

熊猫:根据其组内元素的相对索引在多索引数据框中创建列

来自分类Dev

如何根据多索引熊猫数据框中的行索引值创建列?

来自分类Dev

如何从多索引数据框中删除索引列

来自分类Dev

创建具有多列索引的Pandas数据框

来自分类Dev

从多索引熊猫数据框创建索引

来自分类Dev

在数据框中创建新列:组中的索引(组之间不唯一)

来自分类Dev

如何在熊猫中创建多索引数据框?

来自分类Dev

在多索引熊猫数据框中创建列名称列表

来自分类Dev

在熊猫数据框中创建新列

来自分类Dev

使用逻辑索引和分组依据在熊猫数据框中创建新列

来自分类Dev

正确的索引编制以在Pandas中创建新的数据框

来自分类Dev

大熊猫:连接数据框,对列数据进行正向填充和多索引

来自分类Dev

使用列中的值对熊猫数据框进行多索引

来自分类Dev

更改多索引Pandas数据框中的列分组

来自分类Dev

如何排序和删除多索引数据框中的列

来自分类Dev

在R中的数据框中创建和填充列

来自分类Dev

多索引数据框中的熊猫索引

来自分类Dev

从现有数据框创建多索引列Pandas数据框

来自分类Dev

从参数化的SQL调用中填充新的数据框列

来自分类Dev

根据数据框中的条件填充新列

来自分类Dev

用两个具有相同索引和列的数据框创建新的数据框

来自分类Dev

从多个列中创建虚拟变量并创建新的数据框

来自分类Dev

创建新的数据框列

Related 相关文章

  1. 1

    在多索引熊猫数据框中创建多个新列

  2. 2

    在熊猫数据框中创建多索引列

  3. 3

    为数据框创建多列索引

  4. 4

    从多索引数据框中删除列

  5. 5

    使用np.select创建具有多索引数据框的新列

  6. 6

    如何根据多索引熊猫数据框中的行索引值创建列?

  7. 7

    熊猫:根据其组内元素的相对索引在多索引数据框中创建列

  8. 8

    如何根据多索引熊猫数据框中的行索引值创建列?

  9. 9

    如何从多索引数据框中删除索引列

  10. 10

    创建具有多列索引的Pandas数据框

  11. 11

    从多索引熊猫数据框创建索引

  12. 12

    在数据框中创建新列:组中的索引(组之间不唯一)

  13. 13

    如何在熊猫中创建多索引数据框?

  14. 14

    在多索引熊猫数据框中创建列名称列表

  15. 15

    在熊猫数据框中创建新列

  16. 16

    使用逻辑索引和分组依据在熊猫数据框中创建新列

  17. 17

    正确的索引编制以在Pandas中创建新的数据框

  18. 18

    大熊猫:连接数据框,对列数据进行正向填充和多索引

  19. 19

    使用列中的值对熊猫数据框进行多索引

  20. 20

    更改多索引Pandas数据框中的列分组

  21. 21

    如何排序和删除多索引数据框中的列

  22. 22

    在R中的数据框中创建和填充列

  23. 23

    多索引数据框中的熊猫索引

  24. 24

    从现有数据框创建多索引列Pandas数据框

  25. 25

    从参数化的SQL调用中填充新的数据框列

  26. 26

    根据数据框中的条件填充新列

  27. 27

    用两个具有相同索引和列的数据框创建新的数据框

  28. 28

    从多个列中创建虚拟变量并创建新的数据框

  29. 29

    创建新的数据框列

热门标签

归档