小编Tom*_*Yip的帖子

为什么使用 [:] 与 iloc[:] 分配会在 Pandas 中产生不同的结果?

iloc对熊猫中使用的不同索引方法感到困惑。

假设我正在尝试将一维数据帧转换为二维数据帧。首先我有以下一维数据框

a_array = [1,2,3,4,5,6,7,8]
a_df = pd.DataFrame(a_array).T
Run Code Online (Sandbox Code Playgroud)

我将把它转换成一个大小为2x4. 我首先按如下方式预设二维数据框:

b_df = pd.DataFrame(columns=range(4),index=range(2))
Run Code Online (Sandbox Code Playgroud)

然后我使用for循环来帮助我使用以下代码将a_df(1-d)转换为b_df(2-d)

for i in range(2):
    b_df.iloc[i,:] = a_df.iloc[0,i*4:(i+1)*4]
Run Code Online (Sandbox Code Playgroud)

它只给我以下结果

     0    1    2    3
0    1    2    3    4
1  NaN  NaN  NaN  NaN
Run Code Online (Sandbox Code Playgroud)

但是,当我换b_df.iloc[i,:]b_df.iloc[i][:]。结果是正确的,如下所示,这就是我想要的

   0  1  2  3
0  1  2  3  4
1  5  6  7  8
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释.iloc[i,:]和之间的区别.iloc[i][:]是什么,以及为什么.iloc[i][:]在我上面的示例中起作用但不起作用.iloc[i,:]

python dataframe pandas

13
推荐指数
1
解决办法
604
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1