我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,:]