是否有一种方法可以从数据框中选择多组列,而无需分别命名列?例如,第1到第4列,第7到第9列以及第22到29列的所有行。
我尝试了
df.loc[:, [1:5, 7:10, 22:30] ]
和
df.loc[:, [[1:5], [7:10], [22:30]] ]
没有成功
答案 0 :(得分:1)
尝试一下:
df = pd.DataFrame(np.random.random((10,25)))
df.iloc[:, np.r_[1:5, 10:15, 24]]
输出:
1 2 3 4 10 11 12 \
0 0.919851 0.852250 0.296771 0.562167 0.926956 0.425690 0.347112
1 0.053743 0.709286 0.866658 0.873554 0.588566 0.349387 0.582820
2 0.910201 0.918976 0.170105 0.967791 0.839613 0.200846 0.680498
3 0.606104 0.932580 0.857744 0.876963 0.199340 0.303397 0.103754
4 0.310878 0.386755 0.792151 0.664561 0.295020 0.980937 0.161358
5 0.808738 0.473452 0.190060 0.882827 0.778226 0.054262 0.052157
6 0.381418 0.216191 0.034603 0.314118 0.806126 0.535102 0.903150
7 0.531248 0.411528 0.644153 0.994051 0.727920 0.587441 0.679924
8 0.585064 0.352427 0.940689 0.684018 0.544400 0.765451 0.018906
9 0.075305 0.526637 0.911727 0.945098 0.105858 0.299441 0.862912
13 14 24
0 0.084237 0.317501 0.906934
1 0.949726 0.744821 0.149304
2 0.529243 0.492711 0.933917
3 0.723055 0.898373 0.642724
4 0.929206 0.540533 0.467883
5 0.825112 0.357224 0.235781
6 0.258703 0.114978 0.506079
7 0.758599 0.440214 0.863970
8 0.936511 0.117202 0.089875
9 0.968953 0.509748 0.584470
答案 1 :(得分:0)
您需要使用iloc
:
mydict = [{'a': 1, 'b': 2, 'c': 3, 'd': 4},
{'a': 100, 'b': 200, 'c': 300, 'd': 400},
{'a': 1000, 'b': 2000, 'c': 3000, 'd': 4000 }]
df = pd.DataFrame(mydict)
生成数据帧,然后,如果您要制定单阵列选择标准:
print(df.iloc[:2]):
输出:
a b c
0 1 2 3
1 100 200 300
2 1000 2000 3000
编辑:是的,如果您确实想要多个选择条件,则可以使用np.r_
,这在处理多个数组时非常有用,并且需要逐行合并。
df.iloc[:,np.r_[1:5, 10:15, 22:30]]