Python 重命名30个数据帧列
我有30个数据帧,每个Python 重命名30个数据帧列,python,dataframe,Python,Dataframe,我有30个数据帧,每个df有一列。列名很大,如下所示: df1.columns = ['123.ABC_xyz_1.CB_1.S_01.M_01.Pmax'] df2.columns = ['123.ABC_xyz_1.CB_1.S_01.M_02.Pmax'] .. df30.columns = ['123.ABC_xyz_1.CB_1.S_01.M_30.Pmax'] 我想删减他们的名字,我希望他们最终是如下所示: df1.columns = ['M1Pmax'] df2.colu
df
有一列。列名很大,如下所示:
df1.columns = ['123.ABC_xyz_1.CB_1.S_01.M_01.Pmax']
df2.columns = ['123.ABC_xyz_1.CB_1.S_01.M_02.Pmax']
..
df30.columns = ['123.ABC_xyz_1.CB_1.S_01.M_30.Pmax']
我想删减他们的名字,我希望他们最终是如下所示:
df1.columns = ['M1Pmax']
df2.columns = ['M2Pmax']
..
df30.columns = ['M30Pmax']
我想到了这样的事情:
df_list = [df1,df2,....,df30]
for i,k in enumerate(df_list):
df_list[i].columns = [col_name+'_df[i]{}'.format(df_list[i]) for col_name in df_list[i].columns]
但是,我上面的代码不能正常工作
怎么做 为什么不这样做呢
# List of all dataframes
df_list = [df1,df2,....,df30]
# List of Columns names for all dataframes
colum_names =[['M1Pmax'],['M2Pmax'],...., ['M30Pmax']]
for i in range(len(df_list)):
df_list[i].columns = [colum_names[i]]
希望这对你有帮助 为什么不这样做呢
# List of all dataframes
df_list = [df1,df2,....,df30]
# List of Columns names for all dataframes
colum_names =[['M1Pmax'],['M2Pmax'],...., ['M30Pmax']]
for i in range(len(df_list)):
df_list[i].columns = [colum_names[i]]
希望这对你有帮助 您试图以不起作用的名称使用数据帧本身。我假设您试图使用数据帧的名称。您也没有缩短代码中的任何内容,只是将其延长。我想提出如下建议:
df_list = [df1,df2,....,df30]
for i, k in enumerate(df_list):
df_list[i].columns = ['M{}_'.format(i)+col_name.split(".")[-1] for col_name in df_list[i].columns]
您试图以不起作用的名称使用数据帧本身。我假设您试图使用数据帧的名称。您也没有缩短代码中的任何内容,只是将其延长。我想提出如下建议:
df_list = [df1,df2,....,df30]
for i, k in enumerate(df_list):
df_list[i].columns = ['M{}_'.format(i)+col_name.split(".")[-1] for col_name in df_list[i].columns]
IIUC
IIUC
@WeNYoBen你能看看这个吗?@WeNYoBen你能看看这个吗?我试过你的方法,我得到了如下结果:
df[1]。columns=['.\u-df\u-df1']
。我期待的是df[1]。columns=['M1\u Pmax']
。你知道哪里错了吗?你更新的答案给了我以下输出:df[1]。columns=['M1\u fdf1']
。我期待的是df[1]。columns=['M1\u Pmax']
这意味着这df1.columns=['123.ABC\u xyz\u 1.CB\u 1.S\u 01.M\u 01.Pmax']
不是真的。告诉我实际的列名是什么。我尝试了你的方法,得到了以下结果:df[1]。columns=[''.\u-df\u-df1']
。我期待的是df[1]。columns=['M1\u Pmax']
。你知道哪里错了吗?你更新的答案给了我以下输出:df[1]。columns=['M1\u fdf1']
。我期待的是df[1]。columns=['M1\u Pmax']
这意味着这df1.columns=['123.ABC\u xyz\u 1.CB\u 1.S\u 01.M\u 01.Pmax']
不是真的。告诉我列名到底是什么。这是一个费力的过程。需要简单。这是一个费力的过程。需要简单。我得到以下错误:I.columns=I.columns.str.split('..).str[-2:].str.join(''..str.replace('.'').AttributeError:'int'对象没有属性'columns'
@Msquare是否列出dfs列表?是的!它正在工作。我将得到以下输出:df[1]。columns=['fdf1']
。但是我期望像这样的东西df[1].columns=['M01']
我得到了以下错误:I.columns=I.columns.str.split('..).str[-2:].str.join('').str.replace('','')AttributeError:'int'对象没有属性'columns'
@Msquare是df列表吗?是的!它正在工作。我将得到以下输出:df[1]。columns=['fdf1']
。但是我期待类似这样的东西df[1]。columns=['M01']