我经历了pandas.Dataframe.add_prefix。我有一组动态创建的列,因此我对这些列使用了pd.df.add_prefix。
例如,新创建的列是:
column0 column1 column2
从0开始。是否有一种方法可以从1开始命名列,例如:
column1 column2 column3
编辑:
数据框:
df = pd.DataFrame([[34007, [3330193, 349723]], [126063, [349723,7901731]]],
columns=['prod_1', 'prod_2'])
代码:
pd.DataFrame(df['prod_2'].values.tolist()).add_prefix('column').join(df['prod_1'])
我得到的输出:
column0 column1 prod_1
3330193 349723 34007
349723 7901731 126063
预期输出:
column1 column2 prod_1
3330193 349723 34007
349723 7901731 126063
请注意,仅预期生成的列的名称会在预期输出中更改,值保持不变
感谢您的帮助!
答案 0 :(得分:3)
您可以使用df.rename
重命名带有f字符串的列:
out = (pd.DataFrame(df['prod_2'].values.tolist())
.rename(columns=lambda x: f"column{int(x)+1}").join(df['prod_1']))
column1 column2 prod_1
0 3330193 349723 34007
1 349723 7901731 126063