【python資料處理】pandas基礎操作
阿新 • • 發佈:2018-12-14
基礎操作
-
1.建立表
dataframe 類似於csv 與SQL表
方法1
import codecademylib
import pandas as pd
df1 = pd.DataFrame({
'Product ID': [1, 2, 3, 4],
'Product Name': ['t-shirt', 't-shirt', 'skirt', 'skirt'],
'Color': ['blue', 'green', 'red', 'black']
})
print(df1)
方法2
import codecademylib import pandas as pd df2 = pd.DataFrame([ [1, 'San Diego', 100], [2, 'Los Angeles', 120], # Fill in rows 3 and 4 [3,'San Francisco' , 90], [4 ,'Sacramento', 115] ], columns=[ 'Store ID','Location','Number of Employees' ]) print(df2)
-
2.匯入csv檔案
import pandas as pd
orders = pd.read_csv('orders.csv')
print(orders)
-
3.檢視
df.head(n)檢視前n個數據
df.info()檢視dataframe資料
import codecademylib
import pandas as pd
df = pd.read_csv('imdb.csv')
df.head(10)
print(df.info())
-
4選擇
1.選擇某一列的兩種方式
x=dataframe.column_name 返回某一列的資料 注意:列名中間有空格無法這麼選擇
x=dataframe['column_name']
clinic_north = df.clinic_north
clinic_north = df['clinic_north']
2.選擇多列
x=dataframe[['column_name1','column_name2']] 返回兩列資料
clinic_north_south = df[['clinic_north','clinic_south']]
3. 選擇行
x=dataframe.iloc[n] 返回第n行的資料
4.選擇多行
x=df.iloc[n:m] 返回第n至m-1行資料 從0開始算
x=df[n:m] 效果一樣
df2 = df.loc[[1, 3, 5]]
df3=df2.reset_index(inplace=True,drop=True)
print(df2)
這時候選出來的是帶index的
如果使用 .reset_index(drop,inplace)可以重置index 使用drop 消除 ,inplace 可以選擇是返回一個新dataframe還是在原dataframe上修改
5.選擇邏輯運算
x=df[df.column 運算子 條件]]
例子:
返回所有月份為1月的行
january = df[df.month == 'January']
返回3月和4月的行
march_april=df[(df.month=='March')|(df.month=='April')]
返回一二三月的行
january_february_march=df[df.month.isin([ 'January','February', 'March'])]
print(january_february_march)
-
5.新增
新增整列
1.df['column_name']=[x,x,x,x,x] 分別新增
2.df['column_name'] = x 整列都相同
3.df['column_name']=df['exist_column_name']操作
df['Sold in Bulk?']=['Yes','Yes','No','No']
df['In Stock?'] = True
df['Revenue'] = df.['Price'] - df['Cost to Manufacture']
-
6.更改列名
有時候列名取得不好中間有空格無法使用df.column_name 只能使用df['column_name']
所以要更改列名
1.df.columns 方法
df = pd.DataFrame({
'First Name': ['John', 'Jane', 'Sue', 'Fred'],
'Age': [23, 29, 21, 18]
})
df.columns = ['name', 'age']
2.df.rename 方法 rename中間轉換是:
df = pd.DataFrame({
'First Name': ['John', 'Jane', 'Sue', 'Fred'],
'Age': [23, 29, 21, 18]
})
df.rename(columns={
'First Name':'name',
'Age': 'age'},
inplace=True)