我有一個問題,我好幾個星期都想不通,但這聽起來很簡單,我無法想象這是不可能的。假設我有應該在列中表示的資料,最少 2 個或更多。我知道有很多方法可以創建 df,最簡單的方法是創建一個像
df = pd.DataFrame(
{
'col1' : ['a', 'b', 'c'],
'col2' : ['d', 'e', 'f'],
'col3' : [1, 2, 3],
})
但我想用以下語法創建它:
df = pd.DataFrame(data="here the lists which represent columns", index='...', columns=['...'])
如果我有一個單一的值串列作為資料,其中 index=list('ABCD') 和 columns=['col1'] 它可以作業。資料串列將是 DataFrame 中的一列,形狀為 df.shape=(4,1)
如果資料引數如下所示:
data = [['a', 'b', 'c'], ['d', 'e', 'f']]
輸出將是一個形狀為 (3,2) 的 df,因為每個串列都將被解釋為第一行是“a”和“d”等的行,或者如果index=list('ABC') and columns=[['col1','col2']]將被添加,那么我會得到“2 列”的 ValueError通過,通過的資料有 3 列”
一個小的解決方法是:
df = pd.DataFrame(data=[['a', 'b', 'c'], ['d', 'e', 'f']], index=['col1', 'col2'])
df = df.T
有沒有我沒想到的方法?將“資料”的輸入從串列更改為 Series 或 np.array 對我也沒有幫助。
uj5u.com熱心網友回復:
你可能想通過 dict
pd.DataFrame(dict(zip(['col1','col2'],data)))
col1 col2
0 a d
1 b e
2 c f
uj5u.com熱心網友回復:
您可以像這樣將資料分配給列標題:
data = [['a', 'b', 'c'], ['d', 'e', 'f'], [1,2,3]]
df = pd.DataFrame(data={
'col1': data[0],
'col2': data[1],
'col3': data[2]
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/350414.html
