我有一个脚本,用于创建要连接的数据帧列表。在连接之前,我会检查每个数据帧中的某一列是否存在“1”二进制标志。如果没有一个,则希望从数据帧列表中删除该数据帧。我遇到麻烦是因为不确定如何正确索引列表以删除数据帧。我使用以下代码重新创建了此问题。
data = {'Name':['Tom', 'Tom', 'Tom', 'Tom'], 'Age':[20, 21, 19, 18]}
data2 = {'Name':['Tom', 'nick', 'krish', 'jack'], 'Age':[20, 21, 19, 18]}
# Create DataFrame
df = pd.DataFrame(data)
df2 = pd.DataFrame(data2)
df3 = pd.DataFrame(data)
df4 = pd.DataFrame(data2)
dflist = [df, df2, df3, df4]
for frame in dflist:
vals = frame["Name"].values
if 'krish' not in vals:
dflist.remove(frame)
但是
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我还尝试了枚举列表并根据dflist [i]进行删除,但这会更改索引,因此随后将删除错误的帧。
基于条件从df列表中删除数据框的正确方法是什么?谢谢!