Ich habe df mit Index als Datum und auch Spalte namens Scores. Nun möchte ich das df wie es ist beibehalten, aber Spalte hinzufügen, die das 0.7 Quantil von Scores für diesen Tag gibt. Methode des Quantils müsste Mittelpunkt sein und auch auf die nächste ganze Zahl gerundet werden.Hinzufügen Spalte von .75 Quantil basierend auf Groupby
0
A
Antwort
0
Ich habe einen Ansatz skizziert, den Sie unten nehmen könnten.
Beachten Sie, dass zum Runden eines Werts auf die nächste ganze Zahl die integrierte Funktion round()
von Python verwendet werden sollte. Details siehe round()
in der Python documentation.
import pandas as pd
import numpy as np
# set random seed for reproducibility
np.random.seed(748)
# initialize base example dataframe
df = pd.DataFrame({"date":np.arange(10),
"score":np.random.uniform(size=10)})
duplicate_dates = np.random.choice(df.index, 5)
df_dup = pd.DataFrame({"date":np.random.choice(df.index, 5),
"score":np.random.uniform(size=5)})
# finish compiling example data
df = df.append(df_dup, ignore_index=True)
# calculate 0.7 quantile result with specified parameters
result = df.groupby("date").quantile(q=0.7, axis=0, interpolation='midpoint')
# print resulting dataframe
# contains one unique 0.7 quantile value per date
print(result)
"""
0.7 score
date
0 0.585087
1 0.476404
2 0.426252
3 0.363376
4 0.165013
5 0.927199
6 0.575510
7 0.576636
8 0.831572
9 0.932183
"""
# to apply the resulting quantile information to
# a new column in our original dataframe `df`
# we can apply a dictionary to our "date" column
# create dictionary
mapping = result.to_dict()["score"]
# apply to `df` to produce desired new column
df["quantile_0.7"] = [mapping[x] for x in df["date"]]
print(df)
"""
date score quantile_0.7
0 0 0.920895 0.585087
1 1 0.476404 0.476404
2 2 0.380771 0.426252
3 3 0.363376 0.363376
4 4 0.165013 0.165013
5 5 0.927199 0.927199
6 6 0.340008 0.575510
7 7 0.695818 0.576636
8 8 0.831572 0.831572
9 9 0.932183 0.932183
10 7 0.457455 0.576636
11 6 0.650666 0.575510
12 6 0.500353 0.575510
13 0 0.249280 0.585087
14 2 0.471733 0.426252
"""
Verwandte Themen
- 1. Plot mehrere Boxplots geordnet nach 75% Quantil (Q3)
- 2. Plotten basierend auf groupby
- 3. SparkSQL: Avg basierend auf einer Spalte nach GroupBy
- 4. Spalte basierend auf Join-Bedingung hinzufügen
- 5. New Spalte basierend auf 1 Zustand unter Verwendung von Zeige- und eine Spalte groupby
- 6. Hinzufügen Spalte zu Datenrahmen basierend auf Datum Spalte Bereich
- 7. Hinzufügen von Jahreszeiten Spalte zu Datentabelle basierend auf Monatsdaten
- 8. Zuordnung von Indikatoren basierend auf Beobachtungsquantil
- 9. r erhalten Wert nur von Quantil() Funktion
- 10. hinzufügen neue Spalte basierend auf Summe einer Spalte und gruppiert nach zwei weiteren Spalten in Pandas
- 11. finden andere Wertspalten basierend auf maximal eine Spalte GROUPBY insbesondere Spalte
- 12. Erhalte Zeilen von Pandas Dataframe basierend auf einer Bedingung einer Spalte nach groupby und TimeGroup
- 13. Wie transformieren Wert Spalte zu Quantil bei Pandas Python?
- 14. Quantil Normalisierung auf Pandas Datenrahmen
- 15. GROUPBY df Spalte Pandas
- 16. (Pandas) Füllen NaN basierend auf groupby und column Bedingung
- 17. Hinzufügen von Werten basierend auf duplizierten Daten
- 18. Kumulative Liste einer Spalte groupby
- 19. Löschen von Zeilen aus Pandas-Datenrahmen basierend auf groupby-Werten
- 20. berechnen Quantil auf gruppierten Daten in Funkendataframe
- 21. Pandas: Transformation von Zeilen in einzelne Spalte basierend auf Bedingung
- 22. Python Pandas-Gruppe basierend auf Spalte und erhalten max, aber ausschließen basierend auf einer anderen Spalte
- 23. Stunden basierend auf Herkunftsland hinzufügen
- 24. Hinzufügen Spalte basierend auf ID in einem anderen Daten
- 25. Spalte basierend auf Werten in anderen Spalten Datenrahmen hinzufügen r
- 26. Hinzufügen einer Spalte basierend auf anderen Spalten KDB +
- 27. Groupby eine numpy.array basierend auf groupby pandas.DataFrame mit der gleichen Länge
- 28. Hinzufügen neuer Spalte und ihr Wert basierend auf Dateiname
- 29. Hinzufügen eine Spalte Wert basierend auf der Zeilenindex R in
- 30. Python/Panda - gegen Datenrahmen hinzufügen Spalte basierend auf Werten