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)
,但在这一点上,想不出一个方便的方法来让它以一种高效的方式进入目录列表。。。