#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)