Pandas 熊猫在行参与条件中连接索引的一部分
我有一个表格,以行和行的形式列出了修复和引擎的功率 发动机功率始终包含符号“/” 因此,过滤我的索引: 我想要的是每一张发票都有一个不同权力的列表 例如,对于“inv123”,新行应包含['400/HP','500kw/h'] 到目前为止,我有以下代码: 从itertools导入压缩Pandas 熊猫在行参与条件中连接索引的一部分,pandas,append,filtering,Pandas,Append,Filtering,我有一个表格,以行和行的形式列出了修复和引擎的功率 发动机功率始终包含符号“/” 因此,过滤我的索引: 我想要的是每一张发票都有一个不同权力的列表 例如,对于“inv123”,新行应包含['400/HP','500kw/h'] 到目前为止,我有以下代码: 从itertools导入压缩 boolean_filter = DF.index.str.contains('/') & DF['inv123'] indexlist =list(DF.index) mylist = list(
boolean_filter = DF.index.str.contains('/') & DF['inv123']
indexlist =list(DF.index)
mylist = list(compress(indexlist, boolean_filter))
# you can generate it in one liner
mylist = list(compress(DF.index,DF.index.str.contains('/') & DF['inv123']))
print(mylist)
结果
['400/HP', '500/kwh']
这是我必须在row='concatenate“column='inv123'中添加的值
我遇到了一些问题
- a) 我不能以蟒蛇式的方式(没有循环)完成这项工作
- b) 添加具有以下内容的空行时: 追加(pd.Series(name='concatenate'))
但是,我仍然必须对我提出的解决方案的每一列进行循环
from itertools import compress
lc=[list(compress(DF.index,DF.index.str.contains('/') & DF.iloc[:,i])) for i in range(len(DF.columns))]
第一件事是用每列的布尔值压缩索引列表(DF.iloc[:,i])
结果,我得到了一个列表,其中每个元素都是所需值的列表
这个解决方案一点也不优雅。
我花了几个小时。DF.where(DF==1.stack()
或类似的东西。