2024-04-18 12:25:19 发布
网友
我有这张桌子:
a b c d e f 19-08-06 19-08-07 19-08-08 g h i 1 2 3 4 5 6 7 8 9 10 11 12
我有34列日期,所以我想将日期列合并成一列
在Pyton我怎么做
提前谢谢
可以使用^{}创建用于提取日期列的布尔掩码,然后使用^{}
m = df.columns.str.fullmatch("\d{2}-\d{2}-\d{2}") cols = df.columns[m] df.melt(value_vars=cols, var_name='date', value_name='vals') date vals 0 19-08-06 7 1 19-08-07 8 2 19-08-08 9
如果您想在保留其他列的同时熔化,请尝试此操作
df.melt( id_vars=df.columns.difference(cols), var_name="date", value_name="vals" ) a b c d e f g h i date vals 0 1 2 3 4 5 6 10 11 12 19-08-06 7 1 1 2 3 4 5 6 10 11 12 19-08-07 8 2 1 2 3 4 5 6 10 11 12 19-08-08 9
这里我没有使用value_vars=cols,因为它是隐式使用的
value_vars=cols
value_vars: tuple, list, or ndarray, optional Column(s) to unpivot. If not specified, uses all columns that are not set as id_vars.
可以使用^{} 创建用于提取日期列的布尔掩码,然后使用^{}
如果您想在保留其他列的同时熔化,请尝试此操作
这里我没有使用
value_vars=cols
,因为它是隐式使用的相关问题 更多 >
编程相关推荐