[英]Make dataframe having different column length with the given lists of different length
我有兩個不同長度的列表,我想形成一個 DataFrame,將這些列表作為 DataFrame 的列。 假設我的列表是L1 =["a","b"]
L2 = ["g","h","o","y"]
L3 = ["k","u","e"]
我想要一個 dataframe 看起來像
L1 L2 L3
a g k
b h u
o e
y
這個問題不僅限於三列。它在數百個范圍內
根據結果,它可能正在尋找,想法是將列表轉換為數據幀,您還可以創建一個 function 作為輸入,列出 arguments 而不是手動將每個列表輸入數據幀。
import pandas as pd
import numpy as np
## your list
L1 =["a","b"]
L2 = ["g","h","o","y"]
L3 = ["k","u","e"]
## Convert List into DataFrame
L1 = pd.DataFrame(L1)
L2 = pd.DataFrame(L2)
L3 = pd.DataFrame(L3)
## Concanate the created DataFrames and Fill 'NaN' with or empty spaces
db =pd.concat([L1,L2,L3], ignore_index=True, axis=1).replace(np.nan, '')
## Results
print(db)
import pandas as pd
import numpy as np
## your list
L1 =["a","b"]
L2 = ["g","h","o","y"]
L3 = ["k","u","e"]
## function passing arguments
def wrapper(*args):
return pd.concat([pd.DataFrame(i) for i in args], ignore_index=True, axis=1).replace(np.nan, '')
## Results
print(wrapper(L1,L2,L3))
您可以使用來自itertools
的zip_longest
迭代器。 它將使用默認為None
的fillvalue
填充較短的序列。 您可以在下面的示例中指定其他內容,例如空字符串。
from itertools import zip_longest
df = pd.DataFrame(zip_longest(L1,L2,L3, fillvalue=''),
columns=['L1','L2','L3'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.