I'm trying to apply a simple function on a pd.DataFrame
but I need the index of each element while applying.
Consider this DataFrame
:
CLM_1 | CLM_1 | |
---|---|---|
A | foo | bar |
B | bar | foo |
C | bar | foo |
and I want a pd.Series
as result like so:
A 'A'
B 'B'
C 'D'
Length: 3, dtype: object
My approach:
I used df.apply(lambda row: row.index, axis=1)
which obviously didn't work.
CodePudding user response:
Use to_series()
on the index:
>>> df.index.to_series()
A A
B B
C C
dtype: object
If you want to use the index in a function, you can assign it as a column and then apply whatever function you need:
df["index"] = df.index
>>> df.apply(lambda row: row["CLM_1"] row["index"], axis=1)
A fooA
B barB
C barC
dtype: object