Я только что заметил, что строковые операции над индексом Pandas DataFrame не поддерживают индекс, поэтому присвоение результата обратно в dataframe довольно неудобно.например (и тот случай, когда я это заметил):
import pandas as pd
df = pd.DataFrame(
[[1,2],[3,4],[5,6]],
index=['a11','b12','c13'])
df['num'] = df.index.str.extract('([0-9]+)')
дает мне:
0 1 num
a11 1 2 NaN
b12 3 4 NaN
c13 5 6 NaN
, так как индекс потерян и просто возвращается к [0,1,2]
потребовалось немного отладки, чтобы понять, что это потеря индекса, поэтому я получал NaN, но как только я это сделал, было очевидно, что я мог просто сделать:
df['num'] = df.index.str.extract('([0-9]+)').set_index(df.index)
это правильно, или естьдругие методы, которые поддерживают индекс?