我有一个DataFrame
叫做“stockData”。下面是一个非常小的示例的开头,该示例包含所有不同类型的列名。你知道吗
BBG.XLON.BTA.S_RAWLAST BBG.XLON.BTA.S_RAWVOLUME \
date
2008-02-04 262.00 23397414
2008-02-05 257.25 35213970
2008-02-06 262.75 41323308
2008-02-07 237.00 123276113
2008-02-08 231.00 76456078
BBG.XLON.BTA.S_MKTCAP BBG.XLON.BTA.S_RAWVWAP \
date
2008-02-04 20875.7353 263.4303
2008-02-05 20497.5582 261.6408
2008-02-06 20935.7956 262.3705
2008-02-07 18884.0477 241.9444
2008-02-08 18389.9269 234.4538
BBG.XLON.BTA.S_RAWCLOSE BBG.XLON.BTA.S_LAST_ADJ \
date
2008-02-04 262.00 262.00
2008-02-05 257.25 257.25
2008-02-06 262.75 262.75
2008-02-07 237.00 237.00
2008-02-08 231.00 231.00
BBG.XLON.BTA.S_VWAP_ADJ BBG.XLON.BTA.S_VOLUME_ADJ \
date
2008-02-04 263.4303 23397414
2008-02-05 261.6408 35213970
2008-02-06 262.3705 41323308
2008-02-07 241.9444 123276113
2008-02-08 234.4538 76456078
BBG.XLON.BTA.S_CLOSE_ADJ BBG.XLON.VOD.S_RAWLAST \
date
2008-02-04 262.00 177.9
2008-02-05 257.25 173.6
2008-02-06 262.75 174.2
2008-02-07 237.00 170.0
2008-02-08 231.00 174.3
BBG.XLON.VOD.S_VOLUME_ADJ \
date ...
2008-02-04 ... 114868730
2008-02-05 ... 165372960
2008-02-06 ... 154129543
2008-02-07 ... 187932809
2008-02-08 ... 160997280
BBG.XLON.VOD.S_CLOSE_ADJ BBG.XLON.VOD.S_EXCHANGE_HOLIDAY \
date
2008-02-04 177.9 NaN
2008-02-05 173.6 NaN
2008-02-06 174.2 NaN
2008-02-07 170.0 NaN
2008-02-08 174.3 NaN
BBG.XLON.VOD.S_CORP_ACTION BBG.XLON.VOD.S_REPORTING \
date
2008-02-04 NaN NaN
2008-02-05 NaN NaN
2008-02-06 NaN NaN
2008-02-07 NaN NaN
2008-02-08 NaN NaN
BBG.XLON.VOD.S_FX BBG.XLON.VOD.S_LAST_ADJ_EUR \
date
2008-02-04 1.3307 236.73153
2008-02-05 1.3411 232.81496
2008-02-06 1.3406 233.53252
2008-02-07 1.3410 227.97000
2008-02-08 1.3415 233.82345
BBG.XLON.VOD.S_MKTCAP_EUR BBG.XLON.VOD.S_VWAP_ADJ_EUR \
date
2008-02-04 125761.886753 237.215373
2008-02-05 123681.237732 235.310211
2008-02-06 124062.436220 233.089586
2008-02-07 121107.388396 229.125137
2008-02-08 124216.990692 233.210250
BBG.XLON.VOD.S_CLOSE_ADJ_EUR
date
2008-02-04 236.73153
2008-02-05 232.81496
2008-02-06 233.53252
2008-02-07 227.97000
2008-02-08 233.82345
列标题由两部分组成 第一部分-公司名称(例如BBG.XLON.BTA公司(美国) 第二部分-列中数据的描述(例如RAWCLOSE)
我想得到一个所有列名(所有部分)的不同列表。从数据框中可以看到,每个公司都有不止一列的数据,而且可能有数百家公司。你知道吗
所以在这个只有两个股票的例子中,我想返回一个如下所示的数据帧:
id
BBG.XLON.BTA.S
BBG.XLON.VOD.S
但我不知道该怎么做。我想我可能需要拆分列名,然后一些如何编写每个第一部分元素的不同列表,但在如何执行操作方面需要帮助。你知道吗
您可以使用pandas
Series.str.extract
和正则表达式执行此操作,如下所示:然后你可以把这个发到
pd.Series( , name='id')
您可以使用
df.columns
对column
名称进行list
理解,使用.split('_')
并仅保留第一部分以获取股票名称,然后使用np.unique()
删除重复项并转换为pd.Series
:见docs了解
np.unique
。你知道吗相关问题 更多 >
编程相关推荐