2
TLDR:我一直試圖找到一個內置的解決方案,與轉動重複非數值數據,而不在大熊貓聚集,保持所有副本沒有成功。我進行了自定義操作,但我想知道是否有更好的方法。樞軸與重複的非數值數據,而不在大熊貓聚集,保持所有複製
我想從這個格式讓我的數據:
CAT FLDNAME Value
0 CAT 1 DIM1 A
1 CAT 1 DIM2 B
2 CAT 1 DIM2 C
3 CAT 2 DIM1 D
4 CAT 2 DIM2 E
5 CAT 2 DIM2
到
CAT DIM1 DIM2
0 CAT 1 A B
1 CAT 1 A C
2 CAT 2 D E
2 CAT 2 D
可能性:
No duplicates among grouping columns. Does not require aggregation
- pivot
- set_index
Duplicates among grouping columns. Does require aggregation
- pivot_table
- groupby
按piRSquared的總結中Pivot a pandas DataFrame to be the correct format: `DataError: No numeric types to aggregate`
種所有上述方法都需要既可以當非唯一索引拆垛FLDNAME,或需要聚集。我也用set_index與追加= True和拆垛嘗試,但結束了
CAT DIM1 DIM2
0 CAT 1 A
1 CAT 1 B
2 CAT 1 C
3 CAT 2 D
4 CAT 2 E
4 CAT 2
但是,我用下面的創建從類別(CAT)和FLDNAME逐步更名爲和左加入了分組昏暗的數據幀。
cats = df.CAT.unique()
df2 = pd.DataFrame(cats, columns=['CAT'])
for i, grp in df.groupby('FLDNAME'):
grp.columns = ['CAT', 'FLDNAME', i]
df2 = df2.merge(grp[['CAT', i]], how='left', on='CAT')
是否有更好的方法可以使用開箱?
我應該多一個問題增加了:我使用的數據集包含空值,即不是所有的貓都的DIM和值一些的DIM是專門爲空,所以ffill最終將覆蓋空值。抱歉不清楚。 編輯:似乎工作,一旦我刪除了ffill! – Mark
另外,這是如何工作的? – Mark