我有一个如上所示的DataFrame。有什么方法可以在每次具有行索引[0,1,2], [0,1,3],[0,1,4]
的时候创建一个新的数据帧,这意味着保持数据帧的前2行固定(在这种情况下,索引0和1)并在固定行中包括下一行。
在Python中,输出应该具有带[0,1,2], [0,1,3],[0,1,4]
行的DataFrame,依此类推。
答案 0 :(得分:0)
您可以这样做:
import pandas as pd
df = pd.DataFrame({'A': ['AA','BB','CC','DD','EE'], 'B': ['AA', 'AA', 'BB','BB','BB'], 'C': ['CC', 'CC', 'DD', 'DD', 'DD']})
def make_new_df(row_to_keep, orig_df):
new_df=pd.DataFrame(columns=list(orig_df))
new_df.loc[0]=orig_df.loc[0]
new_df.loc[1]=orig_df.loc[1]
new_df.loc[2]=orig_df.loc[row_to_keep]
return new_df
在调用new_df时,将要保留的行索引作为参数,以及要从中获取行的原始数据框。
答案 1 :(得分:0)
从注释中可以看出,除了前两行外,您还希望为每行添加一个新的dataframe
,
new_df_dict = {}
for i in range(2, len(df)):
new_df_dict[i] = df.iloc[[0, 1, i], :]
此后,您将在new_df_dict
中拥有所有新dataframes
的字典,因为字典的键是新行的编号。
答案 2 :(得分:0)
您可以使用重新索引:
df1=df.reindex[0,1,2]
df2=df.reindex[0,1,3]
etc.
如果要使用切片:
df10=df.reindex( np.r_[0,1,10:len(df)] )