I have the following dataframe in pandas:
Datum Zeit Event
0 14.11.2016 13:00 Veröffentlichung des 9-Monats-Berichtes
1 14.03.2017 13:00 Telefonkonferenz für Analysten
2 14.03.2017 13:00 Telefonkonferenz für Analysten
3 27.04.2017 14:00 Ordentliche Hauptversammlung
4 03.05.2017 14:00 Dividendenzahlung
5 15.05.2017 14:00 Bericht zum 1. Quartal
6 14.08.2017 14:00 Telefonkonferenz für Investoren
7 14.08.2017 14:00 Telefonkonferenz für Analysten
8 14.08.2017 14:00 Veröffentlichung des Halbjahresberichtes
I am looking for the dates of quarterly reports here ("Bericht" in good old German).
I can select the row via
df.loc[df["Event"].str.startswith("Bericht"), "Datum"]
which returns a Series
object like
5 15.05.2017
Name: Datum, dtype: object
However, I only want to have the date - am I overcomplicating things here?
By default a Series
is returned when accessing a specific column and row in a DataFrame
if you want a scalar value then you can access the array element using .values
to return np
array and then indexing into it:
In [101]:
df.loc[df["Event"].str.startswith("Bericht"), "Datum"].values[0]
Out[101]:
'15.05.2017'
For safety you should check whether your selection yields any results prior to indexing into it, otherwise you get a KeyError
:
if len(df.loc[df["Event"].str.startswith("Bericht"), "Datum"]) > 0:
return df.loc[df["Event"].str.startswith("Bericht"), "Datum"].values[0]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With