Разделение фрейма данных Pandas на две части - PullRequest
0 голосов
/ 04 сентября 2018

На самом деле я думаю, это должно быть очень легко. У меня есть фрейм данных pandas, скажем, 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 голосов
/ 04 сентября 2018

Используйте numpy.r_ для показателей конканеката:

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

Sample

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
...