簡體   English   中英

大熊貓將數據從多個列重塑為單個列

[英]Pandas reshaping data from Multiple columns into a single Column

我有一個數據集,我想重整部分結果。 數據集總是從前幾列開始,然后是可變數量的對數據進行分組的列。 如果密鑰屬於該組,則將用x標記。 每個密鑰可能屬於多個組。 也可以是空的。 數據結構如下:

Key  Date Added Group1Name Group2Name Group3Name ... GroupXName
1    1/1/2018   x           X
2    1/1/2018               x
3    1/1/2018                          
4    1/1/2018   x 
5    1/1/2018                                         x

我想重新格式化為:

Key  Date Added Group
1    1/1/2018   Group1Name,Group2Name
2    1/1/2018   Group2Name           
3    1/1/2018        
4    1/1/2018   Group1Name
5    1/1/2018   GroupXName

似乎您還沒有嘗試很多,並且很難用提供的內容來真正地復制數據,但是其想法是讓列具有正確的值而不是'x'並將數據框從寬格式轉換為長格式...

columns_to_consider = ['Group1Name',  'Group2Name', ... ]
for column in columns_to_consider:
    df[column] = df[column].str.replace('X', column)
reshaped_df = pd.melt(df, id_vars=['Key', 'Date Added'], value_vars=columns_to_consider)

axis=1參數一起使用apply

def group_func(series):
        values = []
        for val, idx in zip(series, series.index.values):
            if val is 'x':
                values += [str(idx)]
        return " ".join(values)

cols_to_agg = ['Group1Name', 'Group2Name', 'Group3Name', 'Group4Name']
df.loc[:,'Group'] = df.loc[:,cols_to_agg].apply(group_func, axis=1)

暫無
暫無

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

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