Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 python数据帧按索引记录,不包括NaN_Python 2.7_Pandas_Dictionary_Dataframe_Nan - Fatal编程技术网

Python 2.7 python数据帧按索引记录,不包括NaN

Python 2.7 python数据帧按索引记录,不包括NaN,python-2.7,pandas,dictionary,dataframe,nan,Python 2.7,Pandas,Dictionary,Dataframe,Nan,数据帧 v1 v2 v3 v4 v5 v6 index 0 -2 -2 -2 NaN -2 -2 1 -2 -2 -2 NaN -2 -2 2 -2 -2 -2 NaN -2 -2 3 -2 -2 -2 -2 -2 -2 4 -2 -2 -2 NaN -2 -2 我正在尝试将data

数据帧

     v1 v2  v3  v4  v5  v6
index                                                                   
0   -2  -2  -2  NaN -2  -2
1   -2  -2  -2  NaN -2  -2
2   -2  -2  -2  NaN -2  -2
3   -2  -2  -2  -2  -2  -2
4   -2  -2  -2  NaN -2  -2
我正在尝试将dataframe更改为dictionary 我想忽略json文档中的“nan”字段

我想做的是:

import pandas as pd
pd.DataFrame((samp.to_dict('index')).items())
期望输出:

index    values
0   {'v1':'-2', 'v2':'-2','v3':'-2','v5':'-2','v6':'-2'}
1   {'v1':'-2', 'v2':'-2','v3':'-2','v5':'-2','v6':'-2'}
2   {'v1':'-2', 'v2':'-2','v3':'-2','v5':'-2','v6':'-2'}
3   {'v1':'-2', 'v2':'-2','v3':'-2','v4':'-2','v5':'-2','v6':'-2'}
4   {'v1':'-2', 'v2':'-2','v3':'-2','v5':'-2','v6':'-2'}

使用
apply

df.apply(lambda x : x.dropna().to_dict(),axis=1)
Out[362]: 
index
0    {'v3': -2.0, 'v5': -2.0, 'v6': -2.0, 'v1': -2....
1    {'v3': -2.0, 'v5': -2.0, 'v6': -2.0, 'v1': -2....
2    {'v3': -2.0, 'v5': -2.0, 'v6': -2.0, 'v1': -2....
3    {'v4': -2.0, 'v3': -2.0, 'v5': -2.0, 'v2': -2....
4    {'v3': -2.0, 'v5': -2.0, 'v6': -2.0, 'v1': -2....
dtype: object

使用
apply

df.apply(lambda x : x.dropna().to_dict(),axis=1)
Out[362]: 
index
0    {'v3': -2.0, 'v5': -2.0, 'v6': -2.0, 'v1': -2....
1    {'v3': -2.0, 'v5': -2.0, 'v6': -2.0, 'v1': -2....
2    {'v3': -2.0, 'v5': -2.0, 'v6': -2.0, 'v1': -2....
3    {'v4': -2.0, 'v3': -2.0, 'v5': -2.0, 'v2': -2....
4    {'v3': -2.0, 'v5': -2.0, 'v6': -2.0, 'v1': -2....
dtype: object

虽然这非常有帮助,但我还发现,当我迭代这个数据结构时,使用
dropna()
之后会给我一个
keyrorm
。我发现
fillna()
在我的例子中更有用,可以通过使用
fillna(“”)
来测试相应的值是否存在,从而避免
KeyError
。因此,我的完整解决方案是:
df.apply(lambda x:x.fillna(“”).to_dict(),axis=1)
虽然这很有帮助,但我还发现,当我迭代这个数据结构时,使用
dropna()
之后会给我一个
键错误。我发现
fillna()
在我的例子中更有用,可以通过使用
fillna(“”)
来测试相应的值是否存在,从而避免
KeyError
。因此,我的完整解决方案是:
df.apply(lambda x:x.fillna(“”).to_dict(),axis=1)