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...