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