[英]How to remove blank and null values from a list that passed into dataframe in python
I have dataframe column like below.我有 dataframe 列,如下所示。
df['lane']
AZ
NL
NaN
BL
AZ
My code我的代码
unique_lane = df['lane'].unique()
unique_lane = pd.DataFrame( list(zip(unique_lane)), columns =['unique_lane'])
t = ', '.join(unique_lane['unique_lane'].astype(str))
While I am passing unique list values blank('') or Null values should be removed from the list.当我传递唯一列表值时,应从列表中删除空白('')或 Null 值。 The list t created should contain not blank or not Null values.
创建的列表 t 不应包含空白或 Null 值。
bigdata_null_zones = bigdata_null_zones[~bigdata_null_zones["lane"].isin([t])]
How can this be done in python?如何在 python 中做到这一点?
Sample data for test DataFrame from question:来自问题的测试 DataFrame 的样本数据:
df = pd.DataFrame({'lane':['AZ','NL','', np.nan, 'BL','AZ']})
Test for pass only misisng values or empty strings:测试是否仅通过错误值或空字符串:
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
After remove it get empty Series
:删除后得到空
Series
:
t = df['lane'].replace('',np.nan).dropna()
print (t)
Series([], Name: lane, dtype: float64)
So if pass get same values, because nothing filtered:所以如果通过得到相同的值,因为没有过滤:
bigdata_null_zones[bigdata_null_zones["lane"].isin(t)]
print (bigdata_null_zones)
lane
0 AZ
1 NL
2 AB
3 BL
4 AZ
If same DataFrame:如果相同的 DataFrame:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.