python - 如何根据列值对 pandas DF 应用过滤器
问题描述
我有一个像下面这样的DF:
a b c d e
0 -1 2 -3 4
0 1 -2 3 -4
0 -1 -2 -3 4
我需要从每一行中只选择具有正值的列。
所以第一行应该返回
a c e
0 2 4
第二行
a b. d
0 1 3
第三
a e
0 4
有人可以帮忙吗?
提前致谢
解决方案
如果结果需要是系列:
for _, row in df.iterrows():
print(row[row >= 0])
print()
印刷:
a 0
c 2
e 4
Name: 0, dtype: int64
a 0
b 1
d 3
Name: 1, dtype: int64
a 0
e 4
Name: 2, dtype: int64
如果数据帧:
for _, row in df.iterrows():
print(row[row >= 0].to_frame().T)
print()
印刷:
a c e
0 0 2 4
a b d
1 0 1 3
a e
2 0 4
推荐阅读
- python - 如何从文本中提取像 (010000 AAAAAAAAA) 这样的字符串
- php - 检索特定 xml 数据的问题
- python - 是否有可能在由 selenium 打开的 chrome 浏览器顶部弹出 wx.message_dialog?
- python - Gurobi 为可忽略的约束生成不同的解决方案
- java - 在 JNI 案例中调用 openDexFile 函数后,Env 停止正常工作
- java - QueryDsl 中“不同”查询的排序结果
- java - 如何排除父pom对孩子的依赖?
- django-rest-framework - 返回文件内容而不是文件位置链接
- django - 即使模型字段具有默认值,保存到 django 模型也会产生空错误
- php - 如何改进这个 Laravel 查询