[英]How to convert columns of a dataframe to list with different lengths?
我有一个带有不同长度列的数据框。 看起来像这样:
Croptypes VariableInputs FixedInputs
barley fertilizer land
rapeseed labor
wheat capital
当我通过以下代码从列中列出元素时:
Croptypes = list(df['Croptypes'])
VariableInputs = list(df['VariableInputs'])
我得到这个结果。
['barley', 'rapeseed', 'wheat']
['fertilizer', nan, nan]
如何告诉“列表”不列出空单元格?
我预计:
['barley', 'rapeseed', 'wheat']
['fertilizer']
使用dropna
并tolist
:
>>> df['VariableInputs'].dropna().tolist()
['fertilizer']
>>>
或对于每一列:
print({k: v.dropna().tolist() for k, v in df.to_dict('s').items()})
输出:
{'Croptypes': ['barley', 'rapeseed', 'wheat'], 'VariableInputs': ['fertilizer'], 'FixedInputs': ['land', 'labor', 'capital']}
您可以为列表的每个列创建字典,其值如下:
d = {col:df[col].dropna().tolist() for col in df}
d
{'Croptypes': ['barley', 'rapeseed', 'wheat'],
'VariableInputs': ['fertilizer'],
'FixedInputs': ['land', 'labor', 'capital']}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.