将索引列复制到具有文本格式的新列中

Copy index column into new column with text formatting

我正在处理在索引列中有值的数据,我需要额外的列进行过滤。

这是我的数据示例:

                     PERIOD      BUDGET
B156789 MY First     202201      2829,09
B156456 My Second    202203      78,98
B156324 Third        202204      82,98
B156098 Fourth       202207      9292,26

我想在名为 PROJECT 的索引后添加新列作为输出:

                     PROJECT     PERIOD      BUDGET
B156789 MY First     B156789     202201      2829,09
B156456 My Second    B156456     202203      78,98
B156324 Third        B156324     202204      82,98
B156098 Fourth       B156098     202207      9292,26

拆分应该用?:

stripped = text.split()[0]

为了添加新列,我在下面尝试过,但在这种情况下,索引列没有名称,因此以下内容不起作用:

df = df.eval('PROJECT=B', inplace=True)

你可以试试

df['PROJECT'] = df.index.str.split().str[0]
print(df)

                   PERIOD   BUDGET  PROJECT
B156789 MY First   202201  2829,09  B156789
B156456 My Second  202203    78,98  B156456
B156324 Third      202204    82,98  B156324
B156098 Fourth     202207  9292,26  B156098

设置到第一列

df.insert(0, 'PROJECT', df.index.str.split().str[0])
print(df)

                   PROJECT  PERIOD   BUDGET
B156789 MY First   B156789  202201  2829,09
B156456 My Second  B156456  202203    78,98
B156324 Third      B156324  202204    82,98
B156098 Fourth     B156098  202207  9292,26