将column_names从数据帧转换为字典

时间:2018-02-06 05:36:45

标签: python pandas

我有一个如下数据框:

Column1    Column2    Column3    Column4

1             12          5           6

我想创建一个以column_name为键的字典,即Column1,Column2,Column3,Column4和值为1,2,3,4(增量值)

发布,我想将我的数据帧转换为:

1             2          3             4

1             12          5           6

即。 Column1替换为1,Column2替换为2,依此类推......

有人能帮助我吗?

4 个答案:

答案 0 :(得分:1)

IIUC,你可以试试这个

d = {k: v for k, v in zip(df.columns, range(1, len(df.columns)+1))}    
Out[372]:
{'Column1': 1, 'Column2': 2, 'Column3': 3, 'Column4': 4}

获得d后,您可以

df.columns = df.columns.to_series().map(d).values

    1   2   3   4
0   1   12  5   6

在这里,我们使用map并将df.columns转换为pd.Series对象。

答案 1 :(得分:1)

不需要字典,您可以直接将range个对象分配给df.columns

df.columns = range(1, len(df.columns) + 1)

df
   1   2  3  4
0  1  12  5  6

您还可以使用.str -

上的任何df.columns方法
df.columns = df.columns.str.lstrip('Column')

或者,

df.columns = df.columns.str.replace('^Column', '')

df
   1   2  3  4
0  1  12  5  6

答案 2 :(得分:0)

我认为此代码可以帮助您:

import pandas as pd
import numpy as np
data = [{'column1': 1, 'column2': 12,'column3': 15, 'column4': 6}]
df = pd.DataFrame(data)
df.columns = range(1, len(df.columns) + 1)
print (df)

#输出如下:

df
   1   2  3  4
0  1  12  5  6

答案 3 :(得分:0)

你可以这样做:

import pandas as pd   
data = [{'column1': 1, 'column2': 12,'column3': 15, 'column4': 6}]
df = pd.DataFrame(data)
#dict of columns {'column1': 1, 'column2': 2, ...}
column_dict = dict(zip(df.columns, list(range(len(df.columns))+1)))
# rename dataframe columns using rename method
new_df = df.rename(columns=column_dict)

或者这个:

# create a df without specify columns names 
# will generate columns as numbers from 0 to len(df.columns) - 1
new_df = pd.DataFrame(df.values)
# add 1 to starts by 1
new_df.columns = new_df.columns + 1
相关问题