第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

尋找一種更簡潔的方式來使用 Pandas 實(shí)施此解決方案

尋找一種更簡潔的方式來使用 Pandas 實(shí)施此解決方案

紅顏莎娜 2021-05-30 01:29:13
我是Pandas的新手,并試圖將有關(guān)神經(jīng)網(wǎng)絡(luò)問題的訓(xùn)練數(shù)據(jù)匯總在一起。本質(zhì)上,我有2個(gè)DataFrame:一個(gè) DataFrame 有一個(gè)用于 primary_key 的列和用于 3 個(gè)不同位置的 3 列(運(yùn)動(dòng)位置,對(duì)于本示例,如果您愿意,假設(shè)為一壘、二壘、三壘)。每個(gè)位置都有該位置的玩家的玩家 ID。在第二個(gè)DataFrame上,我有每個(gè)球員的各種統(tǒng)計(jì)數(shù)據(jù),例如身高和體重。我的最終目標(biāo)是將第二個(gè)DataFrame中的列添加到第一個(gè)DataFrame中,以便每個(gè)位置具有與特定玩家相關(guān)的身高和體重(以列表示)。然后,我要將這個(gè) DataFrame 導(dǎo)出為 csv,按特定順序排列列,并將其用于我的訓(xùn)練數(shù)據(jù),其中每一列是一個(gè)訓(xùn)練特征,每一行是一個(gè)訓(xùn)練集。我已經(jīng)找到了一個(gè)解決方案,但我想知道我是否以最有效的方式來做,充分利用 Pandas 的功能和特性。這是我的代碼的樣子: ****編輯:我應(yīng)該指出,這只是我的代碼外觀的簡化。實(shí)際上,我的 DataFrame 是從 CSV 中提取的,而不是從我自己創(chuàng)建的字典中構(gòu)建的。****import pandas as pd  dict_1 = {'primary_key' : ['a', 'b', 'c', 'd'],          'position_1_ID' : ['ida', 'idb', 'idc', 'idd'],          'position_2_ID' : ['ide', 'idb', 'idg', 'idd'],          'position_3_ID' : ['idg', 'idf', 'idc', 'idh']}dict_2 = {'position_ID' : ['ida', 'idb', 'idc', 'idd', 'ide', 'idf', 'idg', 'idh'],          'Height' : ['70', '71', '72', '73', '74', '75', '76', '77'],          'Weight' : ['200', '201', '202', '203', '204', '205', '206', '207']}positions = pd.DataFrame(dict_1)players = pd.DataFrame(dict_2)position_columns = ['position_1_ID', 'position_2_ID', 'position_3_ID']carry = positionsprevious = Nonefor p in position_columns:    merged = carry.merge(right = players, left_on = p, right_on = 'position_ID', suffixes = [previous, p] )    carry = merged    previous = pcarry.to_csv()運(yùn)行此代碼后,我有一個(gè)包含以下列的 DataFrame:'首要的關(guān)鍵''位置_1_ID'“ position_2_ID”'position_3_ID''position_IDposition_1_ID''position_IDposition_2_ID''position_IDposition_3_ID''高度位置_1_ID''權(quán)重位置_1_ID''高度位置_2_ID''重量位置_2_ID''Heightposition_3_ID''Weightposition_3_ID'這并不漂亮,但這使我能夠最終導(dǎo)出具有特定列順序的 csv,并且生成 DataFrame 不會(huì)花費(fèi)太長時(shí)間。話雖這么說,我正在做這個(gè)項(xiàng)目的一部分是為了學(xué)習(xí)熊貓。我想看看是否有更清潔的方法可以做到這一點(diǎn)。
查看完整描述

2 回答

?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

您可以使用melt,merge和unstack:


df_out = carry.melt('primary_key')\

              .merge(players, left_on='value', right_on='position_ID')\

              .set_index(['primary_key','variable'])\

              .drop('value', axis=1)\

              .unstack()


df_out.columns = [f'{i}{j}' if i != 'position_ID' else f'{i}' for i,j in df_out.columns]

print(df_out)

輸出:


            position_ID position_ID position_ID Heightposition_1_ID Heightposition_2_ID Heightposition_3_ID Weightposition_1_ID Weightposition_2_ID Weightposition_3_ID

primary_key                                                                                                                                                            

a                   ida         ide         idg                  70                  74                  76                 200                 204                 206

b                   idb         idb         idf                  71                  71                  75                 201                 201                 205

c                   idc         idg         idc                  72                  76                  72                 202                 206                 202

d                   idd         idd         idh                  73                  73                  77                 203                 203                 207



查看完整回答
反對(duì) 回復(fù) 2021-06-01
  • 2 回答
  • 0 關(guān)注
  • 203 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)