繁体   English   中英

从 python 列表中删除浮点 nan 值

[英]Removing float nan values from python list

上下文:我已将数据框转换为列表,以便为市场篮子分析准备数据。 数据框的每一行现在都是一个列表。 每个列表都有 nan 值,我想将列表压缩为非 nan 值。

原始数据框示例

 Presc01            Presc02                    Presc03       Presc04  \
0         NaN                NaN                        NaN           NaN   
1  amlodipine  albuterol aerosol                allopurinol  pantoprazole   
2         NaN                NaN                        NaN           NaN   
3  citalopram            benicar  amphetamine salt combo xr           NaN   
4         NaN                NaN                        NaN           NaN

每隔一行都是空白的,所以我删除了它并使用以下方法重新索引:

df.dropna(subset = ["Presc01"], inplace=True)

df.index = range(len(df))

然后将行转换为列表:

prescriptions = df.values.tolist()

第 4 个列表的示例:

in: print(prescriptions[3])
out:['paroxetine', 'allopurinol', nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]

然后,我创建了一个检查来查看列表中的数据类型:

def checktype(prescriptions):
for element in prescriptions:
    if isinstance(element,int):
        print("Integer")
    if isinstance(element, str):
        print("String")
    if isinstance(element, float):
        print("Float")

并检查第 4 行:

in: checktype(prescriptions[3]) 

out:String String Float Float Float Float Float Float Float Float Float Float Float Float Float Float Float Float Float Float

我尝试了几种在线发布的方法,使用 np.isnan、pd.isnull、“for x if in x if x = x(或 if x = not null,或者 if x =!'nan')”等的变体,我仍然无法让他们离开。

蒂亚!

我通过将所有列组合在一起并将它们重新拆分为列表来解决这个特定问题。 nan 在新名单中被淘汰。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM