e9e*_*e9s 4 python dataframe pandas
我有这个数据框:
index 0
idxaa1cx1 some_text
idxbb2cx2 some_text
idxcc3cx3 some_text
Run Code Online (Sandbox Code Playgroud)
我想将索引拆分为多索引,如下所示:
idx_1 idx_2 0
idxa a1cx1 some_text
idxb b2cx2 some_text
idxc c3cx3 some_text
Run Code Online (Sandbox Code Playgroud)
我试过这个:
df.index = pd.MultiIndex.from_tuples([tuple(idx.split(idx[:3][-5:])) for idx in df.index])
Run Code Online (Sandbox Code Playgroud)
返回:
idx_1 idx_2 0
a1cx1 some_text
b2cx2 some_text
c3cx3 some_text
Run Code Online (Sandbox Code Playgroud)
但 idx_1 列是空白的。我也试过:
df.index = pd.MultiIndex.from_tuples([tuple({idx[:3]:idx[-5:]}) for idx in df.index])
Run Code Online (Sandbox Code Playgroud)
只返回:
idx_1 0
idxa some_text
idxb some_text
idxc some_text
Run Code Online (Sandbox Code Playgroud)
并且不返回字典的“值”。我的问题是如何按任意长度拆分索引并获得多列?
您可以使用pd.MultiIndex.from_arrays:
df.index = pd.MultiIndex.from_arrays([df.index.str[:4], df.index.str[-5:]])
df.rename_axis(("idx_1", "idx_2"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2394 次 |
| 最近记录: |