【问题标题】:Fill values in dataframe在数据框中填充值
【发布时间】:2017-11-28 12:13:42
【问题描述】:

我有以下数据框:

import numpy as np
import pandas as pd

df1 = pd.DataFrame(np.random.randint(1, size=(5,5)))
df2 = pd.DataFrame(np.random.randint(10, size=(2,2)))

当我这样做时,我没有问题:

df1.iloc[0:2,0:2] = df2

这个结果:

6  4  0  0  0
9  2  0  0  0
0  0  0  0  0
0  0  0  0  0

但是当我尝试这个时:

df1.iloc[0:2,3:5] = df2

结果是这样的:

0.0  0.0  0.0  NaN  NaN
0.0  0.0  0.0  NaN  NaN
0.0  0.0  0.0  0.0  0.0
0.0  0.0  0.0  0.0  0.0
0.0  0.0  0.0  0.0  0.0

如何将此 NaN 转换为 df2?

【问题讨论】:

    标签: python pandas numpy dataframe concatenation


    【解决方案1】:

    有可能设置numpy array,但是df2的形状必须与iloc的选择相同:

    print (df1.iloc[0:2,0:2].shape)
    (2, 2)
    print (df2.shape)
    (2, 2)
    
    df1.iloc[0:2,3:5] = df2.values
    print (df1)
       0  1  2  3  4
    0  0  0  0  8  5
    1  0  0  0  0  4
    2  0  0  0  0  0
    3  0  0  0  0  0
    4  0  0  0  0  0
    

    【讨论】:

      猜你喜欢
      • 2018-06-05
      • 2016-09-07
      • 2021-10-21
      • 2023-03-14
      • 2020-11-29
      • 2018-12-17
      • 2018-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多