无法在Series上就地使用reset_index创建DataFrame。

8
当我尝试重置数据框的索引时,它无法正常工作。
new = pd.DataFrame(columns=['a','b','Amount1'])
new['Amount1'] = [0,1,6,7,8,9]
new['a'] = ['sarim',1,2,3,4,'sarim']


df_tf = new[new['a']=='sarim']['Amount1']
df_tf.reset_index(inplace=True)

ret_df['Amount1'] = df_tf

3
不要使用inplace,而是重新赋值:df_tf = df_tf.reset_index() - Psidom
1
也许加上drop参数?如果你将其分配回列并希望将其保留为Series,则可以使用df_tf.reset_index(inplace=True, drop=True)。不过,如果你想要更好的效果,最好使用loc,例如df_tf = new.loc[new['a'] == 'sarim', 'Amount1'].reset_index(drop=True) - Henry Ecker
2个回答

6

你可以尝试,

df_tf.reset_index(drop = True, inplace=True)
ret_df['Amount1'] = df_tf


ret_df['Amount1'] = list(df_tf)

4
你可以在df上重置索引,然后将其转换为系列数据。
new.loc[new["a"] == 'sarim'].reset_index(drop=True)["Amount1"]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接