Cez*_*ulc 2 python python-3.x pandas data-science
我有df列名:'a','b','c'......'z'.
print(my_df.columns)
Index(['a', 'b', 'c', ... 'y', 'z'],
dtype='object', name=0)
Run Code Online (Sandbox Code Playgroud)
我有功能,确定应显示哪些列.例如:
start = con_start()
stop = con_stop()
print(my_df.columns >= start) & (my_df <= stop)
Run Code Online (Sandbox Code Playgroud)
我的结果是:
[False False ... False False False False True True
True True False False]
Run Code Online (Sandbox Code Playgroud)
我的目标是仅显示满足我条件的列的数据框.如果start ='a'并且stop ='b',我希望:
0 a b
index1 index2
New York New York 0.000000 0.000000
California Los Angeles 207066.666667 214466.666667
Illinois Chicago 138400.000000 143633.333333
Pennsylvania Philadelphia 53000.000000 53633.333333
Arizona Phoenix 111833.333333 114366.666667
Run Code Online (Sandbox Code Playgroud)
我想让这个变得稳健并且假设尽可能少。
选项 1与数组切片一起
使用假设:iloc
my_df.columns.is_unique评估为Truestart = df.columns.get_loc(con_start())
stop = df.columns.get_loc(con_stop())
df.iloc[:, start:stop + 1]
Run Code Online (Sandbox Code Playgroud)
选项 2与布尔切片一起
使用假设:loc
start = con_start()
stop = con_stop()
c = df.columns.values
m = (start <= c) & (stop >= c)
df.loc[:, m]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8352 次 |
| 最近记录: |