我有一个层次结构扁平化的Pandas Dataframe :
| 1级ID| 2级ID| 3级ID| 4级ID|姓名|路径|
| - ------| - ------| - ------| - ------| - ------| - ------|
| 1个|零|零|零|财务|财务|
| 1个|四个|零|零|报告|财务〉报告|
| 1个|四个|五个|零|税务申报|财务〉报告〉税务报告|
我要做的是基于Level [] ID列添加或替换为具有4个Level Name列的Level ID列,如下所示:
| 一级名称|二级名称|三级名称|四级名称|姓名|路径|
| - ------| - ------| - ------| - ------| - ------| - ------|
| 财务|零|零|零|财务|财务|
| 财务|报告|零|零|报告|财务〉报告|
| 财务|报告|税务申报|零|税务申报|财务〉报告〉税务报告|
我想在Path列上使用分隔符,但在实际的 Dataframe 中,用ID代替名称(格式类似于"1〉4〉5")
我应该如何处理这个问题?df.info()
的输出如下:
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 135 entries, 0 to 134
Data columns (total 8 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 name 135 non-null object
1 depid 135 non-null object
2 depcode 135 non-null object
3 parentpath 135 non-null object
4 DEP_LV1_ID 135 non-null object
5 DEP_LV2_ID 135 non-null object
6 DEP_LV3_ID 98 non-null object
7 DEP_LV4_ID 56 non-null object
dtypes: object(8)
memory usage: 8.6+ KB
2条答案
按热度按时间b4lqfgs41#
逻辑不清楚,特别是最终值的来源是什么?请参见以下两个不同的选项。
假设源为
df['Name']
输出:
如果您更希望从"Path"中提取
输出:
可重现输入:
sh7euo9m2#
您可以创建一个Map系列来解析编号-〉名称:
输出: