Python 数据帧到不带索引的口述记录列表中

Python 数据帧到不带索引的口述记录列表中,python,pandas,Python,Pandas,我有一个如下的数据帧 NY FL IL GA CA 80.0 30.0 60.0 NaN NaN 90.0 NaN NaN 10.0 20.0 当我这样做的时候 df.apply(lambda x : x.dropna().to_dict(),axis=1) 我明白了 0 {'NY': 80.0, 'FL': 30.0, 'IL': 60.0} 1 {'NY': 90.0, 'GA

我有一个如下的数据帧

 NY       FL      IL      GA      CA
80.0    30.0    60.0    NaN     NaN
90.0    NaN     NaN     10.0    20.0
当我这样做的时候

df.apply(lambda x : x.dropna().to_dict(),axis=1)
我明白了

0    {'NY': 80.0, 'FL': 30.0, 'IL': 60.0}
1    {'NY': 90.0, 'GA': 10.0, 'CA': 20.0}
dtype: object
但我想要的是

list =  [{'NY':80,'FL':30, 'IL':60}, {'NY':90, 'GA':10, 'CA':20 }] 

如何实现这一点?

试试这个:
[{k:v表示d.items中的(k,v)如果不是np.isnan(v)}表示df.to_dict(orient=“rows”)]
试试这个:
[{k:v表示d.items中的(k,v)如果不是np.isnan(v)}表示d.to_dict(orient=“rows”)
只需将结果转换为tolist()

如果所有值都是数字,结果需要整数,则添加imterminate
.astype(int)
调用:

In [1241]: df.apply(lambda x : x.dropna().astype(int).to_dict(), axis=1).tolist()
Out[1241]: [{'NY': 80, 'FL': 30, 'IL': 60}, {'NY': 90, 'GA': 10, 'CA': 20}]

只需转换结果
tolist()

如果所有值都是数字,结果需要整数,则添加imterminate
.astype(int)
调用:

In [1241]: df.apply(lambda x : x.dropna().astype(int).to_dict(), axis=1).tolist()
Out[1241]: [{'NY': 80, 'FL': 30, 'IL': 60}, {'NY': 90, 'GA': 10, 'CA': 20}]

对我来说,把NaN项目放在重要的位置。我不能在
df.apply(lambda x:x.dropna().to_dict(),axis=1)中使用
orient='rows'
那么这就是你的代码:
[{k:v for(k,v)in d.items(),如果不是np.isnan(v)}for d.to_dict(orient=“rows”)]
对于我来说,把NaN项放在重要位置。我不能在
df.apply(lambda x:x.dropna().to_dict(),axis=1)中使用
orient='rows'
那么这就是你的代码:
[{k:v代表d.items()中的(k,v)如果不是np.isnan(v)}代表df.to_dict(orient=“rows”)]
我在思考这个问题。。。但是不确定现在的输出是否需要
int
s(根据Q中的示例输出)而不是
float
s…@JonClements,我已经为这种情况添加了一个额外的更新。不确定它是否是可以构建的,但考虑的思路是
df.stack().astype(int)
,但在这一点上,想不出一个方便的方法,以一种高效的方式把它放到一个目录列表中…我在思考这个。。。但是不确定现在的输出是否需要
int
s(根据Q中的示例输出)而不是
float
s…@JonClements,我已经为这种情况添加了一个额外的更新。不确定它是否是可以构建的,但考虑的思路是
df.stack().astype(int)
,但在这一点上,想不出一个方便的方法来让它以一种高效的方式进入目录列表。。。