【发布时间】:2021-06-26 11:43:44
【问题描述】:
我有两个列表,其中第一个是称为名称的字符串列表,是使用相应的 csv 文件的名称生成的。
names = ['ID1','ID2','ID3']
我已将 csv 文件加载到单独的 pandas 数据帧中,然后进行了一些预处理,这给我留下了一个列表列表,其中每个元素都是每个数据帧的数据:
dfs = [['car','fast','blue'],[],['red','bike','slow']]
如您所见,预处理后数据帧可能为空,这会导致 dfs 中的列表为空。
我想从这个列表中删除元素并返回它的索引,到目前为止我已经尝试过了,但是在打印 k 时没有得到索引。
k = [i for i,x in enumerate(dfs) if not x]
我需要这个索引的原因是,所以我可以看看删除列表names中对应的索引元素。
最终结果看起来有点像这样:
names = ['ID1','ID3']
dfs = [['car','fast','blue'],['red','bike','slow']]
这样我就可以将每个单独的数据框保存为 csv 文件:
for df, name in zip(dfs, names):
df.to_csv(name + '_.csv', index=False)
编辑:我犯了一个错误:名为 dfs 的列表列表需要从 [''] 更改为 []
【问题讨论】:
-
if not x不会产生 True,因为列表的值是['']。条件if not x仅在列表为[]且内部没有任何内容时才会触发。 -
删除熊猫,因为与熊猫无关
-
你的 for 循环
for df, name in zip(dfs,names)只是一个列表循环。所以df并不是一个真正的数据框。 for 循环内的行df.to_csv(name +...)将不起作用。你确定它会起作用吗? -
@JoeFerndz 是的,这部分代码有效。
-
@msa 我的编辑有帮助吗?
标签: python python-3.x list indexing