程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Pandas中的方法及使用示例

編輯:Python

文章目錄

    • 1. Series() -- 創建 Series 對象
    • 2. DataFrame() -- 創建 DataFrame 對象
    • 3. read_csv() -- 讀取 csv 文件
      • filepath_or_buffer -- csv 文件對應的路徑
      • sep -- 指定分隔符
      • header -- 指定第幾行為列名
      • names -- 指定列名
    • 4. read_excel() -- 讀取 excel 文件
      • filepath -- excel 文件對應的路徑
      • header -- 指定第幾行為列名
      • names -- 指定列名
    • 5. to_csv() -- 導出數據到 csv 格式的文件中
      • path_ro_buf -- 導出到的文件的路徑
      • sep -- 指定分隔符
      • header -- 是否保留列名
      • index -- 是否保留行索引
    • 6. to_excel() -- 導出數據到 excel 格式的文件中
      • excel_writer -- 導出到的文件的路徑
      • sheet_name -- 指定表名
      • header -- 是否保留列名
      • index -- 是否保留行索引
    • 7. merge() -- 表格的連接
      • left、right -- 指定左表右表
      • how -- 連接方式
      • on -- 指定連接依據的列名
      • left_on、right_on -- 左右表連接時各自依據的列名
      • suffixes -- 為左右表中重復列名定義後綴
    • 8. concat() -- 表格的拼接
      • axis -- 拼接的方向
    • 9. get_dummies() -- 對離散數據進行獨熱編碼
      • data -- 需要進行處理的表
      • prefix -- 設置列名的前綴


引入包

import pandas as pd

1. Series() – 創建 Series 對象

【Pandas中Series的屬性、方法、常用操作以及使用示例】

2. DataFrame() – 創建 DataFrame 對象

【Pandas中DataFrame的屬性、方法、常用操作以及使用示例】

3. read_csv() – 讀取 csv 文件

filepath_or_buffer – csv 文件對應的路徑

使用 filepath_or_buffer 指定需要打開的 csv 文件的路徑。

data = pd.read_csv('./數據文件/距離最小的三個點.csv')
print(data)

sep – 指定分隔符

csv 文件默認的分隔符為 ,,可以使用 sep 指定數據之間的分隔符

csv文件中的數據:

distance1#distance2#distance3#dot1#dot2#dot3
14.3#14.567#21.508#1.0,11#0,2.0
10.568#34.101#37.41#1.0#11.0#10.0

第二行中2.0前的逗號沒有進行修改

data = pd.read_csv('./數據文件/距離最小的三個點.csv', sep='#')
print(data

header – 指定第幾行為列名

使用 header 指定 csv 文件中的第幾行數據作為表的列名。默認 header = 0,即表的第一行為列名;header = None 表示不指定表中的數據為列名,用於數據中不存在列名的情況。

data = pd.read_csv(
'./數據文件/距離最小的三個點.csv',
sep='#'
)
print(data)

data = pd.read_csv(
'./數據文件/距離最小的三個點.csv',
sep='#',
header=0
)
print(data)

csv文件中的數據:

distance1#distance2#distance3#dot1#dot2#dot3
14.3#14.567#21.508#1.0,11#0#2.0
10.568#34.101#37.41#1.0#11.0#10.0
10.568#34.101#37.41#1.0#11.0#10.0
10.568#34.101#37.41#1.0#11.0#10.0
10.568#34.101#37.41#1.0#11.0#10.0
data = pd.read_csv(
'./數據文件/距離最小的三個點.csv',
sep='#',
header=2
)
print(data)

被指定為列名的行以前的數據都不會出現在數據表中。

data = pd.read_csv(
'./數據文件/距離最小的三個點.csv',
sep='#',
header=None
)
print(data)

header=None,如果不指定列名,會自動默認分配一個 0 ~ (n-1) 的數字索引為列名。

names – 指定列名

使用 names 可以自己指定列名,需要保證自己指定的列名不能存在重復。

data = pd.read_csv(
'./數據文件/距離最小的三個點.csv',
sep='#',
header=None,
names=['a','b','c','d','e','f']
)
print(data)

注意:
如果自己指定了列名,會覆蓋原有的列名。

data = pd.read_csv(
'./數據文件/距離最小的三個點.csv',
sep='#',
header=0,
names=['a','b','c','d','e','f']
)
print(data)

4. read_excel() – 讀取 excel 文件

filepath – excel 文件對應的路徑

使用 filepath 指定需要打開的 excel 文件的路徑。

data = pd.read_excel('./數據文件/信表節點的坐標.xlsx')
print(data)

header – 指定第幾行為列名

使用 header 指定 excel 文件中的第幾行數據作為表的列名。默認 header = 0,即表的第一行為列名;header = None 表示不指定表中的數據為列名,用於數據中不存在列名的情況。

data = pd.read_excel('./數據文件/信表節點的坐標.xlsx')
print(data)

data = pd.read_excel(
'./數據文件/信表節點的坐標.xlsx',
header = 0
)
print(data)

data = pd.read_excel(
'./數據文件/信表節點的坐標.xlsx',
header = 2
)
print(data)

被指定為列名的行以前的數據都不會出現在數據表中。

data = pd.read_excel(
'./數據文件/信表節點的坐標.xlsx',
header = None
)
print(data)

header=None,如果不指定列名,會自動默認分配一個 0 ~ (n-1) 的數字索引為列名。

names – 指定列名

使用 names 可以自己指定列名,需要保證自己指定的列名不能存在重復。

data = pd.read_excel(
'./數據文件/信表節點的坐標.xlsx',
header = None,
names = ['a', 'b', 'c']
)
print(data)

注意:
如果自己指定了列名,會覆蓋原有的列名。

data = pd.read_excel(
'./數據文件/信表節點的坐標.xlsx',
header = 0,
names = ['a', 'b', 'c']
)
print(data)

5. to_csv() – 導出數據到 csv 格式的文件中

to_csv() 將 DataFrame 對象中的數據導出數據到 csv 格式的文件中。

path_ro_buf – 導出到的文件的路徑

data = pd.read_csv('./數據文件/距離最小的三個點.csv', sep='#')
print(data)
data.to_csv('./數據文件/data1.csv')


sep – 指定分隔符

csv 文件的數據分隔符默認為 ,,可以使用 sep 進行修改。

data = pd.read_csv('./數據文件/距離最小的三個點.csv', sep='#')
print(data)
data.to_csv(
'./數據文件/data1.csv',
sep='#'
)

header – 是否保留列名

默認取值為 True,即保留列名。

data = pd.read_csv('./數據文件/距離最小的三個點.csv', sep='#')
print(data)
data.to_csv(
'./數據文件/data1.csv',
sep='#',
header = False
)

index – 是否保留行索引

默認取值為 True,即保留行索引。

data = pd.read_csv('./數據文件/距離最小的三個點.csv', sep='#')
print(data)
data.to_csv(
'./數據文件/data1.csv',
sep='#',
header = False,
index=False
)

6. to_excel() – 導出數據到 excel 格式的文件中

to_excel() 將 DataFrame 對象中的數據導出數據到 excel 格式的文件中。

excel_writer – 導出到的文件的路徑

使用 excel_writer 指定導出到的文件的路徑。

data = pd.read_csv('./數據文件/距離最小的三個點.csv', sep='#')
print(data)
data.to_excel('./數據文件/data2.xlsx')


sheet_name – 指定表名

使用 sheet_name 指定 excel 表格的表名。

data = pd.read_csv('./數據文件/距離最小的三個點.csv', sep='#')
print(data)
data.to_excel(
'./數據文件/data2.xlsx',
sheet_name='data2'
)

header – 是否保留列名

默認取值為 True,即保留列名。

data = pd.read_csv('./數據文件/距離最小的三個點.csv', sep='#')
print(data)
data.to_excel(
'./數據文件/data2.xlsx',
sheet_name='data2',
header=False
)

index – 是否保留行索引

默認取值為 True,即保留行索引。

data = pd.read_csv('./數據文件/距離最小的三個點.csv', sep='#')
print(data)
data.to_excel(
'./數據文件/data2.xlsx',
sheet_name='data2',
header=False,
index=False
)

7. merge() – 表格的連接

left、right – 指定左表右表

l1 = [
pd.Series([1, 2, 3], index=['f', 'b', 'c']),
pd.Series([1, 2, 3], index=['f', 'b', 'c'])
]
df1 = pd.DataFrame(l1)
l2 = [
pd.Series([4, 3, 6], index=['a', 'b', 'e']),
pd.Series([4, 2, 6], index=['a', 'b', 'e'])
]
df2 = pd.DataFrame(l2)
print(pd.merge(df1, df2))

兩個表中都 b 列,根據 b 列進行內連接。連接後重復列保留一個

how – 連接方式

使用 how 指定連接方式。

  • left:左連接
  • right:右連接
  • outer:外連接
  • inner:內連接(默認)
l1 = [
pd.Series([1, 2, 3], index=['f', 'b', 'c']),
pd.Series([1, 2, 3], index=['f', 'b', 'c'])
]
df1 = pd.DataFrame(l1)
l2 = [
pd.Series([4, 3, 6], index=['a', 'b', 'e']),
pd.Series([4, 2, 6], index=['a', 'b', 'e'])
]
df2 = pd.DataFrame(l2)
print(pd.merge(df1, df2, how='outer'))

on – 指定連接依據的列名

兩個表連接時,依據的列的列名相同時,使用 on 指定連接所依據的列名。

l1 = [
pd.Series([1, 2, 3], index=['f', 'b', 'c']),
pd.Series([1, 2, 3], index=['f', 'b', 'c'])
]
df1 = pd.DataFrame(l1)
l2 = [
pd.Series([4, 3, 6], index=['a', 'b', 'e']),
pd.Series([4, 2, 6], index=['a', 'b', 'e'])
]
df2 = pd.DataFrame(l2)
print(pd.merge(df1, df2, how='outer', on='b'))

left_on、right_on – 左右表連接時各自依據的列名

  • left_on:連接時,左表所依據的列的列名
  • right_on:連接時,右表所依據的列的列名
l1 = [
pd.Series([1, 2, 3], index=['f', 'b', 'c']),
pd.Series([1, 2, 3], index=['f', 'b', 'c'])
]
df1 = pd.DataFrame(l1)
l2 = [
pd.Series([1, 3, 6], index=['a', 'b', 'e']),
pd.Series([1, 2, 6], index=['a', 'b', 'e'])
]
df2 = pd.DataFrame(l2)
print(
pd.merge(
df1,
df2,
how='outer',
left_on='f',
right_on='a'
)
)

suffixes – 為左右表中重復列名定義後綴

使用 suffixes 為左右表中重復列名定義後綴,使得連接兩個表後可以區分相同列名的列來自左表還是右表。

l1 = [
pd.Series([1, 2, 3], index=['f', 'b', 'c']),
pd.Series([1, 2, 3], index=['f', 'b', 'c'])
]
df1 = pd.DataFrame(l1)
l2 = [
pd.Series([1, 3, 6], index=['a', 'b', 'e']),
pd.Series([1, 2, 6], index=['a', 'b', 'e'])
]
df2 = pd.DataFrame(l2)
print(
pd.merge(
df1,
df2,
how='outer',
left_on='f',
right_on='a',
suffixes=('1', '2')
)
)

8. concat() – 表格的拼接

concat() 一般用於表格的縱向拼接。

axis – 拼接的方向

  • axis = 0:縱向拼接表(默認)
l1 = [
pd.Series([1, 2, 3], index=['f', 'b', 'c']),
pd.Series([1, 2, 3], index=['f', 'b', 'c'])
]
df1 = pd.DataFrame(l1)
l2 = [
pd.Series([1, 3, 6], index=['a', 'b', 'e']),
pd.Series([1, 2, 6], index=['a', 'b', 'e'])
]
df2 = pd.DataFrame(l2)
print(
pd.concat([df1, df2])
)

列索引不一致

l1 = [
pd.Series([1, 2, 3], index=['f', 'b', 'c']),
pd.Series([1, 2, 3], index=['f', 'b', 'c'])
]
df1 = pd.DataFrame(l1)
l2 = [
pd.Series([1, 3, 6], index=['f', 'b', 'c']),
pd.Series([1, 2, 6], index=['f', 'b', 'c'])
]
df2 = pd.DataFrame(l2)
print(
pd.concat([df1, df2])
)

  • axis = 1:橫向拼接表
l1 = [
pd.Series([1, 2, 3], index=['f', 'b', 'c']),
pd.Series([1, 2, 3], index=['f', 'b', 'c'])
]
df1 = pd.DataFrame(l1)
l2 = [
pd.Series([1, 3, 6], index=['f', 'b', 'c']),
pd.Series([1, 2, 6], index=['f', 'b', 'c'])
]
df2 = pd.DataFrame(l2)
print(
pd.concat([df1, df2], axis=1)
)

l1 = [
pd.Series([1, 2, 3], index=['f', 'b', 'c']),
pd.Series([1, 2, 3], index=['f', 'b', 'c'])
]
df1 = pd.DataFrame(l1)
l2 = [
pd.Series([1, 3, 6], index=['f', 'b', 'c']),
pd.Series([1, 2, 6], index=['f', 'b', 'c'])
]
df2 = pd.DataFrame(l2)
df2.index = [2,3]
print(
pd.concat([df1, df2], axis=1)
)

行索引不一致

9. get_dummies() – 對離散數據進行獨熱編碼

對表中的取值為離散數據的列進行獨熱編碼,將離散類型的信息轉化為使用獨熱編碼進行表示的形式。

data – 需要進行處理的表

l1 = [
pd.Series(['a', 12], index=['f', 'g']),
pd.Series(['b', 11], index=['f', 'g']),
pd.Series(['a', 12], index=['f', 'g'])
]
df1 = pd.DataFrame(l1)
print(
pd.get_dummies(df1)
)

f 列中的數據為離散型的數據,可以使用 get_dummies() 對該列進行獨熱編碼。

prefix – 設置列名的前綴

使用 prefix 設置進行獨熱編碼的列的列名的前綴,默認值為 None

l1 = [
pd.Series(['a', 12], index=['f', 'g']),
pd.Series(['b', 11], index=['f', 'g']),
pd.Series(['a', 12], index=['f', 'g'])
]
df1 = pd.DataFrame(l1)
print(
pd.get_dummies(df1, prefix='hello_')
)


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved