Python 修改数据框中的行

Python 修改数据框中的行,python,pandas,Python,Pandas,我有一个示例数据框,如下所示: items_0_trialAreas_0_id items_0_trialAreas_0_name items_1_trialAreas_0_id items_1_trialAreas_0_name items_2_trialAreas_0_id items_2_trialAreas_0_name ..... 1 it1

我有一个示例数据框,如下所示:

items_0_trialAreas_0_id   items_0_trialAreas_0_name    items_1_trialAreas_0_id     items_1_trialAreas_0_name    items_2_trialAreas_0_id     items_2_trialAreas_0_name .....
    1                              it1                           2                             it2                       3                             it3 

我想修改我的数据框,使所有项目的id位于一列下,所有项目的名称位于一列下

像这样:

item_trialAreas_ids      item_trialAreas_names
    1                           it1
    2                           it2
    3                           it3
   ...                          ...
使用:

输出

  items_ids item_names
0       1.0        it1
1       2.0        it2
2       3.0        NaN
3       NaN        it3

初始df:

print(df)
   item_id_1 item_name_1  item_id_2 item_name_2  item_id_3 item_name_4
0          1         it1          2         it2          3         it3

首先创建示例数据帧:

import pandas as pd

rows = [1, 'it1', 2, 'it2', 3, 'it3']
cols = ['items_0_trialAreas_0_id', 'items_0_trialAreas_0_name', 'items_1_trialAreas_0_id', 'items_1_trialAreas_0_name', 'items_2_trialAreas_0_id', 'items_2_trialAreas_0_name']

df = pd.DataFrame(rows).T
df.columns = cols
然后添加:

df1 = df.iloc[:,::2].T.reset_index().drop('index', axis=1)
df2 = df.iloc[:,1::2].T.reset_index().drop('index', axis=1)

df_final = pd.concat([df1, df2], axis=1)
df_final.columns = ['item_trialAreas_ids', 'item_trialAreas_names']
输出:

  item_trialAreas_ids item_trialAreas_names
0                   1                   it1
1                   2                   it2
2                   3                   it3

但是如果最初的DF列名是这样的:
items\u 0\u Areas\u 0\u id | items\u 0\u Areas\u 0\u name | items\u 0\u Areas\u 1\u id | items\u 0\u Areas\u 1\u name
那么您需要更改以前的列名。您能用列名更新您的问题吗?用列名更新我的问题吗。请查收。
  item_trialAreas_ids item_trialAreas_names
0                   1                   it1
1                   2                   it2
2                   3                   it3