python - 如何从传递给python数据框的列表中删除空白和空值
问题描述
我有如下数据框列。
df['lane']
AZ
NL
NaN
BL
AZ
我的代码
unique_lane = df['lane'].unique()
unique_lane = pd.DataFrame( list(zip(unique_lane)), columns =['unique_lane'])
t = ', '.join(unique_lane['unique_lane'].astype(str))
当我传递唯一列表值时,应从列表中删除空白('')或 Null 值。创建的列表不应包含空白或 Null 值。
bigdata_null_zones = bigdata_null_zones[~bigdata_null_zones["lane"].isin([t])]
这怎么能在python中完成?
解决方案
来自问题的测试 DataFrame 的示例数据:
df = pd.DataFrame({'lane':['AZ','NL','', np.nan, 'BL','AZ']})
测试是否仅通过错误值或空字符串:
df = pd.DataFrame({'lane':['', np.nan]})
print (df)
lane
0
1 NaN
bigdata_null_zones = pd.DataFrame({'lane':['AZ','NL','AB', 'BL','AZ']})
print (bigdata_null_zones)
lane
0 AZ
1 NL
2 AB
3 BL
4 AZ
删除后它变空Series
:
t = df['lane'].replace('',np.nan).dropna()
print (t)
Series([], Name: lane, dtype: float64)
所以如果通过得到相同的值,因为没有过滤:
bigdata_null_zones[bigdata_null_zones["lane"].isin(t)]
print (bigdata_null_zones)
lane
0 AZ
1 NL
2 AB
3 BL
4 AZ
如果相同的数据框:
df = pd.DataFrame({'lane':['AZ','NL','', np.nan, 'BL','AZ'],
'col':range(6)})
print (df)
lane col
0 AZ 0
1 NL 1
2 2
3 NaN 3
4 BL 4
5 AZ 5
df1 = df.assign(lane= df['lane'].replace('',np.nan)).dropna(subset=['lane'])
print (df1)
lane col
0 AZ 0
1 NL 1
4 BL 4
5 AZ 5
推荐阅读
- javascript - 无法读取 PHP/Vue JS 表单中空错误的属性“名称”
- apache-kafka - 卡夫卡内部存储
- python - 根据同一字典中的另一个键提取 Pandas 中一个字典键的值
- python - 如何在图像上按顺序粘贴大量徽标?
- java - 如何从适配器类调用片段?
- c++ - QVTKOpenGLWidget 不响应信号,而同一 .ui 中的其他小部件会响应它
- java - 无法修改 REST Web 服务中的文本文件
- python - 服务器运行时如何启动命令管理?
- ag-grid - Ag-grid quickFilter 缓存首次搜索
- dc.js - 有没有办法在 dc.js 选择菜单中使用 optgroup?