簡體   English   中英

我們可以改變熊貓交叉表嗎?

[英]Can we alter pandas cross tabulation?

我已經使用 sqlalchemy 和 pymysql 從 MySQL 加載了 raw_data

engine = create_engine('mysql+pymysql://[user]:[passwd]@[host]:[port]/[database]')

df = pd.read_sql_table('data', engine)

df 是這樣的

| Age Category | Category       |
|--------------|----------------|
| 31-26        | Engaged        |
| 26-31        | Engaged        |
| 31-36        | Not Engaged    |
| Above 51     | Engaged        |
| 41-46        | Disengaged     |
| 46-51        | Nearly Engaged |
| 26-31        | Disengaged     |

然后我進行了如下分析

age = pd.crosstab(df['Age Category'], df['Category'])

| Category     | A | B  | C  | D |
|--------------|---|----|----|---|
| Age Category |   |    |    |   |
| 21-26        | 2 | 2  | 4  | 1 |
| 26-31        | 7 | 11 | 12 | 5 |
| 31-36        | 3 | 5  | 5  | 2 |
| 36-41        | 2 | 4  | 1  | 7 |
| 41-46        | 0 | 1  | 3  | 2 |
| 46-51        | 0 | 0  | 2  | 3 |
| Above 51     | 0 | 3  | 0  | 6 |

我想把它改成 Pandas DataFrame 這樣的東西。

| Age Category | A | B  | C  | D |
|--------------|---|----|----|---|
| 21-26        | 2 | 2  | 4  | 1 |
| 26-31        | 7 | 11 | 12 | 5 |
| 31-36        | 3 | 5  | 5  | 2 |
| 36-41        | 2 | 4  | 1  | 7 |
| 41-46        | 0 | 1  | 3  | 2 |
| 46-51        | 0 | 0  | 2  | 3 |
| Above 51     | 0 | 3  | 0  | 6 |

感謝您的時間和考慮

兩個文本都稱為列名和索引名,更改它們的解決方案是使用DataFrame.rename_axis

age = age.rename_axis(index=None, columns='Age Category')

或者按索引名稱設置列名稱,然后將索引名稱設置為默認值 - None

age.columns.name = age.index.name
age.index.name = None

print (age)
Age Category  Disengaged  Engaged  Nearly Engaged  Not Engaged
26-31                  1        1               0            0
31-26                  0        1               0            0
31-36                  0        0               0            1
41-46                  1        0               0            0
46-51                  0        0               1            0
Above 51               0        1               0            0

但是這些文本類似於元數據,因此某些功能應該刪除它們。

暫無
暫無

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

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