簡體   English   中英

如何將數據框的列轉換為具有不同長度的列表?

[英]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']

使用dropnatolist

>>> 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM