我有以下pandas
数据框:
df = pd.read_csv(file, header=None)
它给了我类似以下的东西:
0 1
0 123455 1
1 132750 2
然后我需要手动添加数据大小的标题行,这样数据最终看起来像这样:
Field 1 Field 2
0 123455 1
1 132750 2
要获取标题名称,我可以这样做:
['Field %s' % (n+1) for n in range(df.shape[1])]
然后如何将其添加为标题?请注意,在获取数据之前我不知道标题是什么,并且我不想再次“重新加载”数据帧。我只想用“字段1”,“字段2”覆盖“ 0”,“ 1”的标题。怎么办?
答案 0 :(得分:4)
只需分配给df.columns
:
df.columns = ['Field %s' % (n+1) for n in range(df.shape[1])]
使用Python 3.6(PEP 498),您可以使用f字符串:
df.columns = [f'Field {n+1}' for n in range(df.shape[1])]
但是,请注意,可能有更清晰的方法来实现所需的目标:
df.columns = np.arange(1, df.shape[1]+1)
df = df.add_prefix('Field ')
答案 1 :(得分:2)
我认为应该这样做
>>> df.rename(columns = {c : 'Field {}'.format(int(c) + 1) for c in range(len(df.columns))})
Field 1 Field 2
0 123455 1
1 132750 2
答案 2 :(得分:0)
您可以重新编写索引行。例如:
>>> df=pd.read_csv('/Users/david/Desktop/hi.csv',header=None)
>>> df
0 1
0 123455 1
1 132750 2
>>> df.columns = ['Field %s' % (n+1) for n in range(df.shape[1])]
>>> df
Field 1 Field 2
0 123455 1
1 132750 2