这已经回答了类似的如何保持一行,如果任何列包含特定的子字符串?然而,我的问题涉及多个数据框架内的列表,这是一个不同的设置到另一个帖子。另外,我想保留列而不是行。
我已经尝试了所有替代的答案在那篇文章中,不能让我的问题成功地工作。下面是我正在处理的内容:
import pandas as pd
nm = ["Sepal.Length" ,"Sepal.Width" , "Petal.Length", "Petal.Width", "Species"]
def tbl(data):
data = [data[x:] + data[:x] for x in range(1, len(data)+1)]
df = pd.DataFrame(data)
return df
df_tbl = tbl(nm)
ls_comb = [df_tbl.loc[0:i] for i in range(0, len(df_tbl))]
reply_pred=[i.apply(lambda x: x.str.replace('Species', 'log(Species)')) for i in ls_comb]
这是我尝试过的:
[i[i.apply(lambda x: x.str.contains('Sepal.Width', na=False))] for i in reply_pred]
[ 0 1 2 3 4
0 Sepal.Width NaN NaN NaN NaN,
0 1 2 3 4
0 Sepal.Width NaN NaN NaN NaN
1 NaN NaN NaN NaN Sepal.Width,
0 1 2 3 4
0 Sepal.Width NaN NaN NaN NaN
1 NaN NaN NaN NaN Sepal.Width
2 NaN NaN NaN Sepal.Width NaN,
0 1 2 3 4
0 Sepal.Width NaN NaN NaN NaN
1 NaN NaN NaN NaN Sepal.Width
2 NaN NaN NaN Sepal.Width NaN
3 NaN NaN Sepal.Width NaN NaN,
0 1 2 3 4
0 Sepal.Width NaN NaN NaN NaN
1 NaN NaN NaN NaN Sepal.Width
2 NaN NaN NaN Sepal.Width NaN
3 NaN NaN Sepal.Width NaN NaN
4 NaN Sepal.Width NaN NaN NaN]
但是,预期的输出应该返回整个列,例如:
[ 0
0 Sepal.Width
0 4
0 Sepal.Width Sepal.Length
1 Petal.Length Sepal.Width,
0 3 4
0 Sepal.Width log(Species) Sepal.Length
1 Petal.Length Sepal.Length Sepal.Width
2 Petal.Width Sepal.Width Petal.Length,
.
.
.
您可以使用遮罩df.columns
,然后使用df.loc
来选择剩余的列
dfs = [df.loc[:, df.columns[df.apply(lambda col: col.str.contains('Sepal.Width')).any()]]
for df in reply_pred]
for df in dfs:
print(df, 'n')
0
0 Sepal.Width
0 4
0 Sepal.Width Sepal.Length
1 Petal.Length Sepal.Width
0 3 4
0 Sepal.Width log(Species) Sepal.Length
1 Petal.Length Sepal.Length Sepal.Width
2 Petal.Width Sepal.Width Petal.Length
0 2 3 4
0 Sepal.Width Petal.Width log(Species) Sepal.Length
1 Petal.Length log(Species) Sepal.Length Sepal.Width
2 Petal.Width Sepal.Length Sepal.Width Petal.Length
3 log(Species) Sepal.Width Petal.Length Petal.Width
0 1 2 3 4
0 Sepal.Width Petal.Length Petal.Width log(Species) Sepal.Length
1 Petal.Length Petal.Width log(Species) Sepal.Length Sepal.Width
2 Petal.Width log(Species) Sepal.Length Sepal.Width Petal.Length
3 log(Species) Sepal.Length Sepal.Width Petal.Length Petal.Width
4 Sepal.Length Sepal.Width Petal.Length Petal.Width log(Species)