从extract regex追加包含重复列的dataframe行

2024-06-16 10:49:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,如下所示: enter image description here

我想合并dd2和dd1列,mm1和mm2列yyyy1和yyyy2列,依此类推。如果dd1中有值,则dd2中没有值。有没有人能给我个建议?你知道吗

最后我用熊猫.Series.str.extract('正则表达式')


Tags: 数据extract建议seriesstr人能dd2dd1
1条回答
网友
1楼 · 发布于 2024-06-16 10:49:30

您可以使用^{}

d = {'mm':df.columns[df.columns.str.startswith('mm')],
     'dd':df.columns[df.columns.str.startswith('dd')],
     'yyyy':df.columns[df.columns.str.startswith('yyyy')]}

df = pd.lreshape(df, d)

^{}

df = pd.wide_to_long(df.reset_index(),stubnames=['mm','dd','yyyy'], i=['index'], j='DROPME')
       .dropna(how='all')
       .reset_index(drop=True)

或者将带有数字的文本提取到Multiindex,然后^{}

a = df.columns.to_series().str.extract('(dd|mm|yyyy)(\d+)', expand=True).values.tolist()
df.columns = pd.MultiIndex.from_tuples(a)
df = df.stack().reset_index(drop=True)

相关问题 更多 >