使用 pandas Dataframe 列创建新的复杂索引
Creating new complex index with pandas Dataframe columns
我正在尝试将数据框中的列 'A' 和 'C' 连接起来,如下所示,以将其用作新索引:
A | B | C | ...
---------------------------
0 5 | djn | 0 | ...
1 5 | vlv | 1 | ...
2 5 | bla | 2 | ...
3 5 | ses | 3 | ...
4 5 | dug | 4 | ...
期望的结果将是一个类似于以下结果的 Dataframe:
A | B | C | ...
-------------------------------
05000 5 | djn | 0 | ...
05001 5 | vlv | 1 | ...
05002 5 | bla | 2 | ...
05003 5 | ses | 3 | ...
05004 5 | dug | 4 | ...
我搜索了一下,有人知道如何操作数据框来获得这样的结果吗?
#dummying up a dataframe
cf['A'] = 5*[5]
cf['C'] = range(5)
cf['B'] = list('qwert')
#putting together two columns into a new one -- EDITED so string formatting is OK
cf['D'] = map(lambda x: str(x).zfill(5), 1000*cf.A + cf.C)
# use it as the index
cf.index = cf.D
# we don't need it as a column
cf.drop('D', axis=1, inplace=True)
print(cf.to_csv())
D,A,C,B
05000,5,0,q
05001,5,1,w
05002,5,2,e
05003,5,3,r
05004,5,4,t
就是说,我怀疑使用多索引(如果 B 中的值超过 999 ....)或者对多列进行排序或分组会更安全。
我正在尝试将数据框中的列 'A' 和 'C' 连接起来,如下所示,以将其用作新索引:
A | B | C | ...
---------------------------
0 5 | djn | 0 | ...
1 5 | vlv | 1 | ...
2 5 | bla | 2 | ...
3 5 | ses | 3 | ...
4 5 | dug | 4 | ...
期望的结果将是一个类似于以下结果的 Dataframe:
A | B | C | ...
-------------------------------
05000 5 | djn | 0 | ...
05001 5 | vlv | 1 | ...
05002 5 | bla | 2 | ...
05003 5 | ses | 3 | ...
05004 5 | dug | 4 | ...
我搜索了一下,有人知道如何操作数据框来获得这样的结果吗?
#dummying up a dataframe
cf['A'] = 5*[5]
cf['C'] = range(5)
cf['B'] = list('qwert')
#putting together two columns into a new one -- EDITED so string formatting is OK
cf['D'] = map(lambda x: str(x).zfill(5), 1000*cf.A + cf.C)
# use it as the index
cf.index = cf.D
# we don't need it as a column
cf.drop('D', axis=1, inplace=True)
print(cf.to_csv())
D,A,C,B 05000,5,0,q 05001,5,1,w 05002,5,2,e 05003,5,3,r 05004,5,4,t
就是说,我怀疑使用多索引(如果 B 中的值超过 999 ....)或者对多列进行排序或分组会更安全。