簡體   English   中英

將 dataframe 列轉換為數組並插入回 dataframe

[英]Convert dataframe column to array and inset back into dataframe

我有這樣的 pandas 數據框表:

唯一身份 數數 樣品
A-1 3個 6.1(蘋果)
A-1 3個 4.5(香蕉)
A-1 3個 5.6(奇異果)
A2 2個 7.2(橙色)
A2 2個 3.6(芒果)

我想將“示例”列轉換為列表/數組,並僅獲取其他列的第一次出現。 結果表應該是這樣的

唯一身份 數數 樣本摘要
A-1 3個 6.1(蘋果)、4.5(香蕉)、5.6(奇異果)
A2 2個 7.2(橙),3.6(芒果)

到目前為止,這是我的代碼中的內容:

for i in range(len(dataframe['unique_id'])):
     SampleSummary= np.asarray(pd.concat([dataframe['Sample']]))

通過GroupBy.first為沒有列Unique ID的聚合創建字典,通過GroupBy.agg join為列Samples聚合:

d = dict.fromkeys(dataframe.columns.difference(['Unique ID']), 'first')
d['Samples'] = ', '.join

df  = dataframe.groupby('Unique ID', as_index=False).agg(d)
print (df)
  Unique ID  Count                                Samples
0       A-1      3  6.1 (Apple), 4.5 (Banana), 5.6 (Kiwi)
1       A-2      2              7.2 (Orange), 3.6 (Mango)

或者可以對由連接字符串填充的列使用GroupBy.transform ,然后使用DataFrame.drop_duplicates

dataframe['Samples'] = dataframe.groupby('Unique ID')['Samples'].transform(', '.join)
df = dataframe.drop_duplicates('Unique ID')
print (df)
  Unique ID  Count                                Samples
0       A-1      3  6.1 (Apple), 4.5 (Banana), 5.6 (Kiwi)
3       A-2      2              7.2 (Orange), 3.6 (Mango)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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