用stack清理變數值作為列名

2021-10-20 10:46:09 字數 2871 閱讀 9539

import pandas as pd

import numpy as np

state_fruit = pd.read_csv('data/state_fruit.csv', index_col=0)

state_fruit

orange

banana

texas

1210

40arizona97

12florida014

190

# stack方法可以將所有列名,轉變為垂直的一級行索引

state_fruit.stack()

orange 10

banana 40

orange 7

banana 12

orange 14

banana 190

dtype: int64

# 使用reset_index(),將結果變為dataframe

state_fruit_tidy = state_fruit.stack().reset_index()

state_fruit_tidy

level_0

level_100

texas121

texas

orange102

texas

banana403

arizona94

arizona

orange75

arizona

banana126

florida07

florida

orange148

florida

banana

190

# 重新命名列名

state_fruit_tidy.columns = ['state', 'fruit', 'weight']

state_fruit_tidy

state

fruit

weight

0texas121

texas

orange102

texas

banana403

arizona94

arizona

orange75

arizona

banana126

florida07

florida

orange148

florida

banana

190

# 也可以使用rename_axis給不同的行索引層級命名

state_fruit.stack().rename_axis(['state', 'fruit'])

state fruit

orange 10

banana 40

orange 7

banana 12

orange 14

banana 190

dtype: int64

# 再次使用reset_index方法

state_fruit.stack().rename_axis(['state', 'fruit']).reset_index(name='weight')

state

fruit

weight

0texas121

texas

orange102

texas

banana403

arizona94

arizona

orange75

arizona

banana126

florida07

florida

orange148

florida

banana

190

# 讀取state_fruit2資料集

state_fruit2 = pd.read_csv('data/state_fruit2.csv')

state_fruit2

state

orange

banana

0texas

1210401

arizona97

122florida014

190

# 州名不在行索引的位置上,使用stack將所有列名變為乙個長series

state_fruit2.stack()

0 state texas

orange 10

banana 40

1 state arizona

orange 7

banana 12

2 state florida

orange 14

banana 190

dtype: object

# 先設定state作為行索引名,再stack,可以得到和前面相似的結果

state_fruit2.set_index('state').stack()

state

orange 10

banana 40

orange 7

banana 12

orange 14

banana 190

dtype: int64

python變數值 Python變數值轉變量

今天用python讀取乙個有很多欄位的配置檔案,配置檔案中的格式類似 pidstart 2600 startfid 47 starttid 450 startfirst 1 message 一般會想到的是 config open configpath,r for item in config set...

Makefile列印變數值

makefile第二講 列印出內容和使用變數 摘要 echo 開始生成最終執行檔案,請稍候.這一句便是將一條資訊輸出到終端,為何前邊有個 符號呢?有了這個符號該命令本身就不會輸出到終端 不理解,自己去掉或者加上 符號試試 實驗證明,字串可以不加引號。看到 objs main.o 了嗎?這就是變數的定...

Python交換變數值

平時時不時會面面實習生,大多數的同學在學校裡都已經掌握了python。面試的時候要求同學們實現乙個簡單的函式,交換兩個變數的值,大多數的同學給出的都是如下的答案 def swap x,y tmp x x y y tmp實際上,python中還有更簡潔的更具python風格的實現,如下 def swa...