簡體   English   中英

如何轉換 python 數據幀,以便將唯一的行值轉置到列,另一列的值成為它們的行

[英]How to transform python data frame such that unique row values are transposed to columns and values of another column become their rows

概括
我正在使用 Python 2.7。 我有一個包含所有分類變量的數據框,即數據類型是字符串。 我想將一列的唯一行值轉換為多列。 此外,這些結果列的值必須具有來自另一列的相應值。 為了詳細描述,我提供了一個可重現的數據幀和預期的 output 供您參考。

需要轉置的 Dataframe 可以創建如下:

import pandas as pd
codes = ['codeA','codeB', 'codeC']
variables = ['textA','textA','textB']
dataset = list(zip(codes,variables))
df = pd.DataFrame(data = dataset, columns=['codes','variables'])
df['string'] = 'string1'

需要轉置的數據框如下所示:

df
   codes variables   string
0  codeA     textA  string1
1  codeB     textA  string1
2  codeC     textB  string1

預期的最終 output 應該是這樣的:

textA textB string
codeA       string1
codeB
      codeC string1

注意:目標是轉置。 我不太擔心空格是 NULL 值還是零。

我不確定您示例中的最后一列,因為它似乎與轉換的 rest 不一致。 無論如何,我認為使用 pandas get_dummies function 轉換變量列可能是一個不錯的起點。

import pandas as pd
codes = ['codeA','codeB', 'codeC']
variables = ['textA','textA','textB']
dataset = list(zip(codes,variables))
df = pd.DataFrame(data = dataset, columns=['codes','variables'])
df['string'] = 'string1'

df = pd.get_dummies(df, columns=['variables'])
df.variables_textA = df.codes.where(df.variables_textA.astype(bool),0)
df.variables_textB = df.codes.where(df.variables_textB.astype(bool),0)
columns = ['variables_textA', 'variables_textB','string']
df = df[columns]

結果

暫無
暫無

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

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