我有以下(示例)数据框:
Age height weight haircolor
joe 35 5.5 145 brown
mary 26 5.25 110 blonde
pete 44 6.02 185 red
....
索引中没有重复值。
我处于不得不使用许多其他数据帧中的元素 append 到此数据帧的尴尬境地。所以我追加如下:
names_df = names_df.append({'Age': someage,
'height': someheight,
'weight':someweight,
'haircolor': somehaircolor'},
ignore_index=True)
我的问题是使用此方法如何将 names_df 中的新索引值设置为等于人名?
我唯一能想到的就是在追加之前重置 df 索引,然后再重新设置它。丑陋的。必须有更好的方法。
提前致谢。
请您参考如下方法:
我不确定您以何种格式获取要 append 到原始 df 的数据,但一种方法如下:
df.loc['new_name', :] = ['someage', 'someheight', 'someweight', 'somehaircolor']
Age height weight haircolor
joe 35 5.5 145 brown
mary 26 5.25 110 blonde
pete 44 6.02 185 red
new_name someage someheight someweight somehaircolor
时间测试:
%timeit df.loc['new_name', :] = ['someage', 'someheight', 'someweight', 'somehaircolor']
1000 loops, best of 3: 408 µs per loop
%timeit df.append(pd.DataFrame({'Age': 'someage', 'height': 'someheight','weight':'someweight','haircolor': 'somehaircolor'}, index=['some_person']))
100 loops, best of 3: 2.59 ms per loop
