我有一个熊猫数据框,它有'Var_1_Access'
、'Var_2_Access'
、'Var_N_Access'
在这些列之间还有其他信息/列,我想查找。例如:
data = pd.read_csv('File')
df = pd.Dataframe(data)
print(df.columns)
Index = (['Var_1', 'Var_1_Access', 'Var_1_comp1', 'Var_1_comp2', 'Var_2', 'Var_2_Access', 'Var_2_comp1', 'Var_2_comp2'], dtype='object')
我想写一个for循环,它遍历N的范围,从'Var_1_Access'
到'Var_N_Access'
我试过:
Access_Matrix = []
for i in range(1, N + 1):
Access_Matrix.append(df.f"Var_%i_Access" % i)
Access_Matrix = []
for i in range(1, N + 1):
Access_Matrix.append(df.Var_{i}_Access)
Access_Matrix = []
for i in range(1, N + 1):
Access_Matrix.append(df.Var_[i]_Access)
这些都会导致错误。是的,因为N很小,所以可以直接将它们写入,但N会变大,我真的不想单独键入每个变量名,而是将其编入索引。最终目标是读取N个变量的数据帧信息,并使Access_Matrix
的形状为[len(Var_N_Access), N]
。此外,以后可能需要在这些特定变量名之间添加更多信息,因此我希望通过字符串变量名与列索引对其进行索引,并寻找一种模式
如有必要,我可以提供更多信息,但我认为这涵盖了必要的信息
使用pandas.DataFrame.filter
它将使用正则表达式过滤列,并生成过滤版本
对于
N
的特定值或获取一个范围这种方法比使用粗循环更有效
您不能使用“.”符号,但您应该可以在方括号中使用“f”字符串来执行此操作
或者,也许更好的方法是建立一个列名列表,并从
df
一次将它们提取到一个新的数据帧中,例如:相关问题 更多 >
编程相关推荐