[英]Check for empty pandas dataframe in python dictionary
I am trying to check whether the dictionary having multiple key:value
pairs of dataframes contains any dataframe with empty rows or dataframe doesn't exist in dictionary which should be there while saving in dictionary earlier.我正在尝试检查具有多个
key:value
数据帧对的字典是否包含任何具有空行的 dataframe 或 dataframe 不存在于字典中,而在早期保存在字典中时应该存在。 I have tried this but no luck我试过这个但没有运气
if __name__=="__main__":
# dict contains {a:df1, b:df2}
if [bool(v) for (k, v) in dict.items()] == False :
print('No data available')
sys.exit()
else:
# DO SOMETHING WITH DATA
Use DataFrame.empty
with any
for test if at least one DataFrame
is empty:如果至少有一个
DataFrame
为空,则使用DataFrame.empty
和any
进行测试:
dict1 = {'a': pd.DataFrame(), 'b':pd.DataFrame([5])}
print ([v.empty for (k, v) in dict1.items()])
[True, False]
if any(v.empty for (k, v) in dict1.items()):
print('No data available')
No data available
dict1 = {'a': pd.DataFrame([2]), 'b':pd.DataFrame([1])}
print ([v.empty for (k, v) in dict1.items()])
[False, False]
if any(v.empty for (k, v) in dict1.items()):
print('No data available')
dict1 = {'a': pd.DataFrame(), 'b':pd.DataFrame()}
print ([v.empty for (k, v) in dict1.items()])
[True, True]
if any(v.empty for (k, v) in dict1.items()):
print('No data available')
No data available
EDIT: For test some keys is possible use set
- order of values is not important:编辑:为了测试一些键是可能的使用
set
- 值的顺序并不重要:
dict1 = {'a': pd.DataFrame(), 'b':pd.DataFrame()}
L = ['c','a','b']
if (set(dict1.keys()) != set(L)):
print('missing some key!')
missing some key!
dict1 = {'a': pd.DataFrame(), 'b':pd.DataFrame(), 'c': pd.DataFrame()}
L = ['c','a','b']
if (set(dict1.keys()) != set(L)):
print('missing some key!')
EDIT1: For combine both conditions use or
: EDIT1:对于结合这两个条件使用
or
:
if (set(dict1.keys()) != set(L)) or any(v.empty for (k, v) in dict1.items()):
print('missing some key or some empty df!')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.