python - 过滤没有结果的内容时如何获得零列?
问题描述
我正在尝试过滤某些内容,但是如果没有结果,我想获得“零”列而不是空白 df。我需要这个,因为它会被输入到更下方的求和方程中,并让它空白起来。看:
>>> df
id name price qty
0001 'bob' 100 4
0001 'bob' 67 5
0001 'bob' 63 6
0002 'jack' 67 3
0002 'jack' 98 7
0002 'jack' 90 12
0003 'jack' 60 3
0003 'jack' 78 7
0003 'rose' 87 15
df_jim_frank_qty = df[df['name'].isin(['jim','frank'])]
df_jim_frank_qty
>>> df_jim_frank_qty
id name price qty
我需要它看起来像这样:
>>> df_jim_frank_qty
id name price qty
NaN NaN NaN 0
我怀疑我必须在那里放置某种 IF 参数并手动创建它,但我不确定如何。有什么想法吗?
谢谢!
解决方案
用 . 检查条件df.empty
。如果True
,则pd.concat
与 一起使用pd.Series
:
In [1063]: y = df[df['name'].isin(['jim','frank'])]
In [1068]: if y.empty:
...: x = pd.concat([y, pd.Series([np.nan, np.nan, np.nan, 0])], 1).dropna(how='all')
...:
In [1069]: x
Out[1069]:
id name price qty 0
3 NaN NaN NaN NaN 0.0
推荐阅读
- r - 从 PNG 文件的 grid.arrange 裁剪 ggsave 的顶部和底部输出
- javascript - Iterable 适用于扩展语法,但不适用于 RxJs `from`
- html - HTML标签由什么组成?
- java - JavaFX splitpane - 防止不必要的分隔线位置更改
- r - 优化函数:考虑负值,但避免为零
- r - 通过 R 中的 deployApp 将多个文件上传到 ShinyApps
- windows - CPU 如何知道它需要开始执行新线程的上下文?
- javascript - 如何在 jquery 中将文本字段值设置为表格行..?
- c# - 如何根据更新的代码分析错误在 Visual Studio 中获取错误?
- swift - 如何在 SwiftUI 拖放中在 NSItemProvider 中传递不仅仅是一个字符串