我有一个如下数据框:
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,依此类推......
有人能帮助我吗?
答案 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