Списки и столбцы PythonPython

Программы на Python
Ответить
Anonymous
 Списки и столбцы Python

Сообщение Anonymous »

У меня есть следующий код, где в части «фильтр» я фильтрую программу по каналу и году, а при группировке делаю среднее значение за день по столбцу, откуда берется рейтинг.
año=[2019,2020]
base2= dataframe
channels=[lista con canales]

def ran_diario(base2,año,channels):

lista=[]
df = pd.DataFrame()

for h in año:
for i in range(1,53):
filtro=base2[base2.Year.isin([h]) & base2.Channel.isin(channels) & base2.Week.isin()]
filtro = filtro[filtro['Description'].str.contains('[a-z]*|[a-z]*'.join(word),case=False)]
filtro["Date"] = pd.to_datetime(filtro["Date"])
a=filtro.groupby("Date", as_index=False)[targets].mean()
lista.append(a)
df["Year"]=h
df["Week"]=i
df=df.append(lista,ignore_index=True)

return (df)

вывод, который я получаю:
Year Week Date rat %
0 2020.0 52.0 2018-12-31 0.000000
1 2020.0 52.0 2019-01-01 0.000000
2 2020.0 52.0 2019-01-02 0.000000
3 2020.0 52.0 2019-01-03 0.000000
4 2020.0 52.0 2019-01-04 0.130000
.. ... ... ... ...
1 NaN NaN 2020-01-12 0.000000
0 NaN NaN 2020-02-01 0.066667
0 NaN NaN 2020-02-08 0.000000
0 NaN NaN 2020-02-15 0.035000
0 NaN NaN 2020-02-29 0.000000

Как вы можете видеть, столбцы даты и rat% в порядке, но столбец года помещает меня в начало 2020 года, когда сейчас 2019 год, и на неделе, которая соответствует i, для него помещается только последний, который равен 52, и в данных «даты» для 2020 года заполните их NaN. Результат должен быть:
Year Week Date rat %
0 2019.0 1.0 2018-12-31 0.000000
1 2019.0 2.0 2019-01-01 0.000000
2 2019.0 3.0 2019-01-02 0.000000
3 2019.0 4.0 2019-01-03 0.000000
4 2019.0 5.0 2019-01-04 0.130000
.. ... ... ... ...
1 2020.0 1.0 2020-01-12 0.000000
0 2020.0 2.0 2020-02-01 0.066667
0 2020.0 3.0 2020-02-08 0.000000
0 2020.0 4.0 2020-02-15 0.035000
0 2020.0 5.0 2020-02-29 0.000000


Подробнее здесь: https://stackoverflow.com/questions/634 ... nd-columns
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»