例えば、
from pandas import DataFrame
df = DataFrame(np.arange(8).reshape(1, 8), columns = list('abcdefgh'))
列 'b':'d' と 'f':'h' を選択したいと思います。両方を含めます。
次を実行して 'b':'d' を選択できることを知っています。
df2 = df.loc[:, 'b':'d']
、しかしdf2 = df.loc[:, ['b':'d', 'f':'h']]
、MATLABの構文のようなものはここでは機能しないので、データフレームで複数の列を選択するにはどうすればよいですか?
numpy.r_
インデックスの連結に使用できますが、位置でのみ機能するため、get_loc
またはsearchsorted
+が必要ですiloc
。
df = pd.DataFrame(np.arange(8).reshape(1, 8), columns = list('abcdefgh'))
print (df)
a b c d e f g h
0 0 1 2 3 4 5 6 7
b = df.columns.get_loc('b')
d = df.columns.get_loc('d')
f = df.columns.get_loc('f')
h = df.columns.get_loc('h')
print (b,d,f,h)
1 3 5 7
b = df.columns.searchsorted('b')
d = df.columns.searchsorted('d')
f = df.columns.searchsorted('f')
h = df.columns.searchsorted('h')
print (b,d,f,h)
1 3 5 7
df = df.iloc[:, np.r_[b:c+1, f:h+1]]
print (df)
b c d f g h
0 1 2 3 5 6 7
次と同じです。
df = df.iloc[:, np.r_[1:4, 5:8]]
print (df)
b c d f g h
0 1 2 3 5 6 7
df = df.iloc[:, np.r_['b':'d', 'f':'h']]
print (df)
#TypeError: unsupported operand type(s) for -: 'str' and 'str'
df = df.loc[:,'b':'d'].join(df.loc[:,'f':'h'])
print (df)
b c d f g h
0 1 2 3 5 6 7
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加