熊猫数据框-通过字符串过滤/选择列是否保留顺序?

时间:2020-05-28 14:35:40

标签: python pandas string dataframe contains

我有一个用例,其中有10个列,其中5个以字符串“ Region”开头。我需要得到一个仅包含那些列的结果数据框(以字符串“ Region”开头)。不仅如此,我还需要确保保留顺序(例如,如果在原始df中,col顺序为'Region 1', 'Region 2', 'Region 3' -应该保留该顺序,而不要导致'Region 3', 'Region 2', 'Region 1')。

遵循此问题的“接受的答案”会保留顺序吗?还是有其他方法可以实现?

stackoverflow - find-column-whose-name-contains-a-specific-string

3 个答案:

答案 0 :(得分:2)

是的,它将。 df.columns是一个列表,当您遍历列表时,将保留列表的顺序。因此,您可以使用上述链接的答案:

region_cols = [col for col in df.columns if 'Region' in col]

df[region_cols]-将是您需要的df。

答案 1 :(得分:2)

两个步骤首先使用filter

s=df.filter(like='Region')

答案 2 :(得分:1)

如果您的数据框类似于:

var fill = contour.fill;

if(fill.color in replaceFills)
{
    fill.color = replaceFills[fill.color];
    contour.fill = fill;
}

我们可以使用print(df) Region 3 Region 2 Region 1 Custom UnwantedCol 0 0 0 0 0 0 方法按数字对列进行排序:

sorted