Python如何调用数据帧的两列之一

2024-09-29 23:31:47 发布

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

我有很多列的大数据框架。我想随时从这两列中选择一列

df.columns = ['c1','c1T1','c2','c2T1',...........,'c10','c10T1',
'c30','c30T2','c40','c40T2',...........,'c60','c60T2'] 

我知道列名是'c1',...,'c4'。还有另一列与其中每一列关联。 我调用第二列的逻辑是'c1'+['T1' or 'T2']。我知道只有一列'c1T1',而不是'c1T2'。那么,如何在df[]中搜索这样的组合呢

我现在的代码是:

   df[['c1','c1'+'T1'|.'T2']]

我目前的产出:

SyntaxError: invalid syntax 

如何调用与第一列关联的第二列


Tags: columns数据框架dft1c2c1t2
2条回答

您可以使用列表自动创建所需的列名&;然后使用该列表查找所需的列。代码如下

您可以更改列表prefixes&postfixes以获取所需的列

prefixes = ['c1']
postfixes = ['', 'T1','T2']
colsToCheck = [prefix+postfix for prefix in prefixes for postfix in postfixes]
cols = [col for col in colsToCheck if col in df.columns]  
df[cols]

下面给出了一个语法错误['c1','c1'+'T1'.'T2'],原因是“.”,但即使没有“.”,也不能将“|与字符串一起使用。解决此问题的方法是生成可能要检查的列名列表(在本例中为['c1'、'c1T1'、'c1T2']),并使用列表理解来获取df.columns中的元素

cols_to_check = ['c1','c1T1','c1T2']  
select_cols = [col for col in cols_to_check if col in df.columns]  
df[select_cols]

相关问题 更多 >

    热门问题