将多个名称相同但编号不同的列复制到python/pandas中的新df中

2024-09-28 03:19:43 发布

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

我有一个巨大的数据帧physioDf,希望将一些列复制到另一个名为smallPysioDf的df中。我知道,我可以像这样复制单个列:

smallPhysioDf['column_name'] = physioDf['column_name'].values

但我现在想复制属于同一变量的30列。每个列名的开头相同(例如“VariableName”),但以1到30之间的特定数字结尾。将所有这些列复制到SmallDF中的最快方法是什么?我相信我将不得不使用for循环,但我不确定如何使用。非常高兴能得到任何帮助


Tags: 数据方法namedffor结尾column数字
2条回答

您可以使用filter提取列名:

for c in physioDf.filter(regex='^VariableName_').columns:
      smallPhysioDf[c] = physioDf[c]

或者您可以使用f字符串:

for n in range(1,31):
    col_name = f'VariableName_{n}'
    smallPhysioDf[col_name] = physioDf[col_name]

一次选择所有列将是最快的:

columns = [f"VariableName_{i}" for i in range(1, 31, 1)]
smallPhysioDf = physioDf[columns].copy()

如果smallPhysioDf已经存在,您可以改为追加(如果VariableName列已经在数据帧中),或者合并(如果VariableName列是新的)

相关问题 更多 >

    热门问题