У Bash есть расширение до printf
, которое сохраняет свой результат в переменной:
printf -v "${VARNAME}" '%s' "${VALUE}"
Это предотвращает все возможные проблемы экранирования.
Если вы используете недопустимый идентификатор для $VARNAME
команда выйдет из строя и вернет код состояния 2:
$ printf -v ';;;' foobar; echo $?
bash: printf: `;;;': not a valid identifier
2
Это 1-ая проблема поворота, затем она становится resample
и ffill
проблемой
df.date=pd.to_datetime(df.date)
df['key']=df.groupby('date').cumcount()
newdf=df.set_index(['date','key']).unstack().resample('D').mean().ffill().stack().reset_index(level=0)
newdf
date id1 id2 value
key
0 2019-01-01 1000.0 2000.0 1.0
1 2019-01-01 1000.0 2010.0 1.0
2 2019-01-01 1000.0 2000.0 1.0
3 2019-01-01 1000.0 2010.0 1.0
0 2019-01-02 1000.0 2000.0 2.0
1 2019-01-02 1000.0 2010.0 2.0
2 2019-01-02 1000.0 2000.0 2.0
3 2019-01-02 1000.0 2010.0 2.0
0 2019-01-03 1000.0 2000.0 2.0
1 2019-01-03 1000.0 2010.0 2.0
2 2019-01-03 1000.0 2000.0 2.0
3 2019-01-03 1000.0 2010.0 2.0
0 2019-01-04 1000.0 2000.0 3.0
1 2019-01-04 1000.0 2010.0 3.0
2 2019-01-04 1000.0 2000.0 3.0
3 2019-01-04 1000.0 2010.0 3.0
.