создайте словарь, используя цикл for, чем преобразуйте его в фрейм данных с индексацией

#python #pandas #dictionary #for-loop #stock

#python #pandas #словарь #for-цикл #запас

Вопрос:

 def newtable():
    dict = {}
    col = ['DAYS','VWAP','TURNOVER','DEL_QTY']
    cal = [3,5,8,13]
    for i in col:
        for j in cal:
            value = final_3.iloc[:j,final_3.columns.get_loc(i)].sum()/j
            dict[i] = value
            print(pd.DataFrame(dict))
            
 

введите описание изображения здесь

пожалуйста, помогите мне, я хочу, чтобы в каждом столбце было по 4 строки без повторяющихся значений, как показано на рисунке.

Ответ №1:

Удаление дубликатов после создания фрейма данных?

 def newtable():
    adict = {}
    col = ['DAYS','VWAP','TURNOVER','DEL_QTY']
    cal = [3,5,8,13]
    for i in col:
        for j in cal:
            value = final_3.iloc[:j,final_3.columns.get_loc(i)].sum()/j
            adict[i] = value
            print(pd.DataFrame(adict).drop_duplicates())
 

Другой способ — заменить дубликаты на NaN:

 def newtable():
    adict = {}
    col = ['DAYS','VWAP','TURNOVER','DEL_QTY']
    cal = [3,5,8,13]
    for i in col:
        for j in cal:
            value = final_3.iloc[:j,final_3.columns.get_loc(i)].sum()/j
            adict[i] = value
            df = pd.DataFrame(adict)
            is_duplicate = df.apply(pd.Series.duplicated, axis=1)
            df = df.where(~is_duplicate, np.nan)
            print(df)