Вот еще одна версия, которая работает на Linux и macOS без использования eval
и без необходимости удалять файлы резервных копий. Он использует массивы Bash для хранения параметров sed
, которые чище, чем использование eval
:
# Default case for Linux sed, just use "-i"
sedi=(-i)
case "$(uname)" in
# For macOS, use two parameters
Darwin*) sedi=(-i "")
esac
# Expand the parameters in the actual call to "sed"
sed "${sedi[@]}" -e 's/foo/bar/' target.file
Это не создает файл резервной копии, ни файл с добавленными кавычками.
Сделайте даты datetime
и sort
, чтобы вы вычислили правильную разницу. Затем groupby
каждый клиент получит необходимые расчеты:
import pandas as pd
df['Date'] = pd.to_datetime(df.Date, format='%d/%m/%Y')
df = df.sort_values('Date')
def AVG_diff(x):
# Integer number of Days
return x.diff().mean().total_seconds()/86400
df.groupby('Cust').Date.agg(['size', AVG_diff])
# Cust size AVG_diff
#0 A 3 2.0
#1 B 3 0.5