将Pandas数据框分为两部分

时间:2018-09-04 06:57:19

标签: python pandas dataframe indexing slice

实际上,我认为这应该很容易。我有一个熊猫数据框,可以说100个柱子,我想要一个包含柱子0:30和77:99的子集。

到目前为止,我所做的是:

df_1 = df.iloc[:,0:30]

df_2 = df.iloc[:,77:99]

df2 = pd.concat([df_1 , df_2], axis=1, join_axes=[df_1 .index])

有没有更简单的方法?

1 个答案:

答案 0 :(得分:1)

使用numpy.r_合并索引:

df2 = df.iloc[:, np.r_[0:30, 77:99]]

示例

df = pd.DataFrame(np.random.randint(10, size=(5,15)))
print (df)
   0   1   2   3   4   5   6   7   8   9   10  11  12  13  14
0   6   2   9   5   4   6   9   9   7   9   6   6   1   0   6
1   5   6   7   0   7   8   7   9   4   8   1   2   0   8   5
2   5   6   1   6   7   6   1   5   5   4   6   3   2   3   0
3   4   3   1   3   3   8   3   6   7   1   8   6   2   1   8
4   3   8   2   3   7   3   6   4   4   6   2   6   9   4   9

df2 = df.iloc[:, np.r_[0:3, 7:9]]
print (df2)
   0  1  2  7  8
0  6  2  9  9  7
1  5  6  7  9  4
2  5  6  1  5  5
3  4  3  1  6  7
4  3  8  2  4  4

df_1 = df.iloc[:,0:3]
df_2 = df.iloc[:,7:9]
df2 = pd.concat([df_1 , df_2], axis=1, join_axes=[df_1 .index])
print (df2)
   0  1  2  7  8
0  6  2  9  9  7
1  5  6  7  9  4
2  5  6  1  5  5
3  4  3  1  6  7
4  3  8  2  4  4