我有两个数据帧df1和df2。df1就像一个具有以下值的字典
Ticker INDUSTRY_SECTOR
TLRA_Equity Communications
KAMN_Equity Industrial
B_Equity Industrial
ARNC_Equity Industrial
RC_Equity Consumer, Non-cyclical
DAR_Equity Consumer, Non-cyclical
df2具有以下值:
^{pr2}$我想根据df1数据帧中的INDUSTRY_SECTOR
将df2拆分为3个新的数据帧。在
Communications
数据框中Industrial
数据框中Consumer, Non-cyclical
数据框中预期产量:
Communications
数据帧
Date TLRA_Equity
1/1/2000 10
2/1/2000 15
3/1/2000 17
Industrial
数据帧
Date KAMN_Equity B_Equity ARNC_Equity
1/1/2000 20 30 40
2/1/2000 25 35 45
3/1/2000 27 37 47
Consumer, Non-cyclical
数据帧
Date RC_Equity DAR_Equity
1/1/2000 50 60
2/1/2000 55 65
3/1/2000 57 67
请让我知道怎样做才有效。我所要做的是连接列名,例如Communications_TLRA_Equity
,然后根据列名的前半部分拆分dataframe。在
代码:
col_names = df2.columns.values.tolist()
d_cols = df2.columns.map(df1.set_index('Ticker')['INDUSTRY_SECTOR'].get)
print(d_cols)
df.columns = [d_cols + "_" str(col) for col in df.columns]
for sector, df_sector in df.columns.str.split('_').str[0].tolist():
print(sector)
print(df_sector)
但这很复杂。需要更好的解决方案。在
考虑创建一个
dict
框架,关键是你的“行业部门”名称。在首先创建一个dict of INDUSTRY_SECTOR:Ticker columns
然后创建听写理解:
^{pr2}$ N、 B。正如@Parfait指出的,要包含
Date
列,您需要将其设置为dict理解中的索引。如果不希望Date
作为索引,请使用:可以使用groupby创建数据帧列表
相关问题 更多 >
编程相关推荐