Python บทช่วยสอนแพนด้า: DataFrame, ช่วงวันที่, การใช้แพนด้า

แพนด้าคืออะไร Python?

นุ่น เป็นไลบรารีโอเพ่นซอร์สที่ให้คุณจัดการและวิเคราะห์ข้อมูลได้ Python- หมีแพนด้า Python ไลบรารีนี้ให้บริการจัดการข้อมูลและการดำเนินการข้อมูลสำหรับตารางตัวเลขและอนุกรมเวลา Pandas มอบวิธีง่ายๆ ในการสร้าง จัดการ และจัดการข้อมูล ไลบรารีนี้สร้างขึ้นบน NumPy ซึ่งหมายความว่าจำเป็นต้องใช้ NumPy เพื่อดำเนินการ

ทำไมต้องใช้แพนด้า?

นักวิทยาศาสตร์ข้อมูลใช้ประโยชน์จากแพนด้าใน Python เพื่อข้อดีดังต่อไปนี้:

  • จัดการข้อมูลที่ขาดหายไปได้อย่างง่ายดาย
  • มันใช้ ซีรี่ส์สำหรับโครงสร้างข้อมูลหนึ่งมิติ และ DataFrame สำหรับโครงสร้างข้อมูลหลายมิติ
  • เป็นวิธีที่มีประสิทธิภาพในการแบ่งส่วนข้อมูล
  • โดยให้วิธีที่ยืดหยุ่นในการผสาน เชื่อมต่อ หรือจัดรูปแบบข้อมูลใหม่
  • มันมีเครื่องมืออนุกรมเวลาที่ทรงพลังในการทำงานด้วย

โดยสรุป Pandas เป็นห้องสมุดที่มีประโยชน์ การวิเคราะห์ข้อมูลสามารถใช้เพื่อจัดการและวิเคราะห์ข้อมูลได้ Pandas มอบโครงสร้างข้อมูลที่ทรงพลังและใช้งานง่าย รวมถึงวิธีการดำเนินการกับโครงสร้างเหล่านี้ได้อย่างรวดเร็ว

จะติดตั้งแพนด้าได้อย่างไร?

ตอนนี้อยู่ในนี้ Python บทช่วยสอนของ Pandas เราจะเรียนรู้วิธีการติดตั้ง Pandas Python.

หากต้องการติดตั้งไลบรารี Pandas โปรดดูบทช่วยสอนของเรา วิธีการติดตั้ง TensorFlow.mq4?- Pandas ได้รับการติดตั้งตามค่าเริ่มต้น ในกรณีระยะไกล ไม่ได้ติดตั้งแพนด้า-

คุณสามารถติดตั้ง Pandas โดยใช้:

  • อนาคอนดา: conda ติดตั้ง -c อนาคอนดาแพนด้า
  • In Jupyter สมุดบันทึก :
import sys
!conda install --yes --prefix {sys.prefix} pandas

Pandas DataFrame คืออะไร

แพนด้าดาต้าเฟรม เป็นอาร์เรย์สองมิติที่มีโครงสร้างข้อมูลที่มีป้ายกำกับซึ่งมีประเภทคอลัมน์ต่างกัน DataFrame เป็นวิธีมาตรฐานในการจัดเก็บข้อมูลในรูปแบบตาราง โดยมีแถวสำหรับจัดเก็บข้อมูลและคอลัมน์สำหรับตั้งชื่อข้อมูล ตัวอย่างเช่น ราคาอาจเป็นชื่อของคอลัมน์ และ 2,3,4 อาจเป็นค่าราคา

Data Frame เป็นที่รู้จักกันดีในหมู่นักสถิติและผู้ปฏิบัติงานด้านข้อมูลอื่นๆ

ด้านล่างรูปภาพของกรอบข้อมูล Pandas:

แพนด้าดาต้าเฟรม

ซีรีส์คืออะไร?

ซีรีส์คือโครงสร้างข้อมูลหนึ่งมิติ สามารถมีโครงสร้างข้อมูลใดๆ เช่น จำนวนเต็ม ทศนิยม และสตริง ซึ่งจะมีประโยชน์เมื่อคุณต้องการคำนวณหรือส่งคืนอาร์เรย์หนึ่งมิติ ตามคำจำกัดความแล้ว ชุดข้อมูลไม่สามารถมีหลายคอลัมน์ได้ สำหรับกรณีหลัง โปรดใช้โครงสร้างกรอบข้อมูล

Python ซีรีย์แพนด้า มีพารามิเตอร์ต่อไปนี้:

  • ข้อมูล: อาจเป็นรายการ พจนานุกรม หรือค่าสเกลาร์
pd.Series([1., 2., 3.])
0    1.0
1    2.0
2    3.0
dtype: float64

คุณสามารถเพิ่มดัชนีด้วยดัชนี ช่วยตั้งชื่อแถว ความยาวควรเท่ากับขนาดของคอลัมน์

pd.Series([1., 2., 3.], index=['a', 'b', 'c'])

ด้านล่างนี้ คุณสร้างชุด Pandas ที่มีค่าหายไปสำหรับแถวที่สาม หมายเหตุ ไม่มีค่าใน Python มีเครื่องหมาย “NaN” คุณสามารถใช้ numpy เพื่อสร้างค่าที่หายไป: np.nan เทียม

pd.Series([1,2,np.nan])

เอาท์พุต

0    1.0
1    2.0
2    NaN
dtype: float64

สร้าง Pandas DataFrame

ในบทช่วยสอน Pandas DataFrame นี้ เราจะได้เรียนรู้วิธีสร้าง Python ดาต้าเฟรมของแพนด้า:

คุณสามารถแปลงอาร์เรย์ numpy ให้เป็น data frame ของ pandas ด้วย pd.Data frame() ตรงกันข้ามก็เป็นไปได้เช่นกัน หากต้องการแปลง Data Frame ของ pandas เป็นอาร์เรย์ คุณสามารถใช้ np.array()

## Numpy to pandas
import numpy as np
h = [[1,2],[3,4]] 
df_h = pd.DataFrame(h)
print('Data Frame:', df_h)

## Pandas to numpy
df_h_n = np.array(df_h)
print('Numpy array:', df_h_n)
Data Frame:    0  1
0  1  2
1  3  4
Numpy array: [[1 2]
 [3 4]]

คุณยังสามารถใช้พจนานุกรมเพื่อสร้าง dataframe ของ Pandas ได้

dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
อายุ ชื่อ
0 30 จอห์น
1 40 Smith

ข้อมูลช่วงแพนด้า

Pandas มี API ที่สะดวกสบายในการสร้างช่วงวันที่ มาเรียนรู้กับ Python ตัวอย่างแพนด้า:

pd.data_range (วันที่ ระยะเวลา ความถี่):

  • พารามิเตอร์แรกคือวันที่เริ่มต้น
  • พารามิเตอร์ตัวที่สองคือจำนวนงวด (ไม่บังคับหากระบุวันที่สิ้นสุด)
  • พารามิเตอร์สุดท้ายคือความถี่: วัน: 'D,' เดือน: 'M' และปี: 'Y'
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)

เอาท์พุต

Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D')
# Months
dates_m = pd.date_range('20300101', periods=6, freq='M')
print('Month:', dates_m)

เอาท์พุต

Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M')

การตรวจสอบข้อมูล

คุณสามารถตรวจสอบส่วนหัวหรือส่วนท้ายของชุดข้อมูลได้ด้วย head() หรือ tail() นำหน้าด้วยชื่อของกรอบข้อมูลของแพนด้า ดังแสดงในตัวอย่าง Pandas ด้านล่าง:

ขั้นตอน 1) สร้างลำดับสุ่มด้วย มึน- ลำดับมี 4 คอลัมน์ 6 แถว

random = np.random.randn(6,4)

ขั้นตอน 2) จากนั้นคุณสร้าง data frame โดยใช้ pandas

ใช้ Dates_m เป็นดัชนีสำหรับกรอบข้อมูล หมายความว่าแต่ละแถวจะได้รับ "ชื่อ" หรือดัชนีที่สอดคล้องกับวันที่

สุดท้าย คุณตั้งชื่อให้กับคอลัมน์ทั้ง 4 คอลัมน์ด้วยคอลัมน์อาร์กิวเมนต์

# Create data with date
df = pd.DataFrame(random,
                  index=dates_m,
                  columns=list('ABCD'))

ขั้นตอน 3) การใช้ฟังก์ชันศีรษะ

df.head(3)
A B C D
2030-01-31 1.139433 1.318510 -0.181334 1.615822
2030-02-28 -0.081995 -0.063582 0.857751 -0.527374
2030-03-31 -0.519179 0.080984 -1.454334 1.314947

ขั้นตอนที่ 4) การใช้ฟังก์ชันหาง

df.tail(3)
A B C D
2030-04-30 -0.685448 -0.011736 0.622172 0.104993
2030-05-31 -0.935888 -0.731787 -0.558729 0.768774
2030-06-30 1.096981 0.949180 -0.196901 -0.471556

ขั้นตอนที่ 5) แนวทางปฏิบัติที่ดีในการทราบเบาะแสเกี่ยวกับข้อมูลคือการใช้ description() โดยให้ข้อมูลจำนวน ค่าเฉลี่ย มาตรฐาน ต่ำสุด สูงสุด และเปอร์เซ็นไทล์ของชุดข้อมูล

df.describe()
A B C D
นับ 6.000000 6.000000 6.000000 6.000000
หมายความ 0.002317 0.256928 -0.151896 0.467601
มาตรฐาน 0.908145 0.746939 0.834664 0.908910
นาที -0.935888 -0.731787 -1.454334 -0.527374
25% -0.643880 -0.050621 -0.468272 -0.327419
50% -0.300587 0.034624 -0.189118 0.436883
75% 0.802237 0.732131 0.421296 1.178404
แม็กซ์ 1.139433 1.318510 0.857751 1.615822

ข้อมูลชิ้น

ข้อสุดท้ายของเรื่องนี้ Python บทช่วยสอนของ Pandas เป็นเรื่องเกี่ยวกับวิธีแบ่งเฟรมข้อมูลของแพนด้า

คุณสามารถใช้ชื่อคอลัมน์เพื่อแยกข้อมูลในคอลัมน์ใดคอลัมน์หนึ่งได้ดังที่แสดงในตัวอย่าง Pandas ด้านล่าง:

## Slice
### Using name
df['A']

2030-01-31   -0.168655
2030-02-28    0.689585
2030-03-31    0.767534
2030-04-30    0.557299
2030-05-31   -1.547836
2030-06-30    0.511551
Freq: M, Name: A, dtype: float64

หากต้องการเลือกหลายคอลัมน์ คุณต้องใช้วงเล็บสองเท่า [[..,..]]

วงเล็บคู่แรกหมายความว่าคุณต้องการเลือกคอลัมน์ ส่วนวงเล็บคู่ที่สองจะบอกคอลัมน์ที่คุณต้องการส่งคืน

df[['A', 'B']].
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

คุณสามารถแบ่งแถวด้วย:

โค้ดด้านล่างส่งคืนสามแถวแรก

### using a slice for row
df[0:3]
A B C D
2030-01-31 -0.168655 0.587590 0.572301 -0.031827
2030-02-28 0.689585 0.998266 1.164690 0.475975
2030-03-31 0.767534 -0.940617 0.227255 -0.341532

ฟังก์ชัน loc ใช้สำหรับเลือกคอลัมน์ตามชื่อ ตามปกติ ค่าที่อยู่ก่อนเครื่องหมายจุลภาคจะหมายถึงแถว และค่าที่อยู่หลังเครื่องหมายจุลภาคจะหมายถึงคอลัมน์ คุณต้องใช้เครื่องหมายวงเล็บเพื่อเลือกมากกว่าหนึ่งคอลัมน์

## Multi col
df.loc[:,['A','B']]
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

มีอีกวิธีหนึ่งในการเลือกหลายแถวและคอลัมน์ใน Pandas คุณสามารถใช้ iloc[] วิธีนี้ใช้ดัชนีแทนชื่อคอลัมน์ รหัสด้านล่างส่งคืน data frame เดียวกันกับด้านบน

df.iloc[:, :2]
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

วางคอลัมน์

คุณสามารถวางคอลัมน์โดยใช้ pd.drop()

df.drop(columns=['A', 'C'])
B D
2030-01-31 0.587590 -0.031827
2030-02-28 0.998266 0.475975
2030-03-31 -0.940617 -0.341532
2030-04-30 0.507350 -0.296035
2030-05-31 1.276558 0.523017
2030-06-30 1.572085 -0.594772

เรียงต่อกัน

คุณสามารถเชื่อม DataFrame สองตัวเข้าด้วยกันใน Pandas คุณสามารถใช้ pd.concat()

ก่อนอื่น คุณต้องสร้าง DataFrame สองอัน ดีมาก คุณคุ้นเคยกับการสร้าง dataframe อยู่แล้ว

import numpy as np
df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'],
                     'Age': ['25', '30', '50']},
                    index=[0, 1, 2])
df2 = pd.DataFrame({'name': ['Adam', 'Smith' ],
                     'Age': ['26', '11']},
                    index=[3, 4])  

สุดท้าย คุณเชื่อม DataFrame ทั้งสองเข้าด้วยกัน

df_concat = pd.concat([df1,df2]) 
df_concat
อายุ พร้อมชื่อ
0 25 จอห์น
1 30 Smith
2 50 พอล
3 26 อาดัม
4 11 Smith

Drop_duplicates

หากชุดข้อมูลอาจมีการใช้ข้อมูลที่ซ้ำกัน `drop_duplicates` ก็สามารถยกเว้นแถวที่ซ้ำกันได้อย่างง่ายดาย คุณจะเห็นว่า `df_concat` มีการสังเกตซ้ำกัน `Smith` ปรากฏสองครั้งในคอลัมน์ `name'

df_concat.drop_duplicates('name')
อายุ พร้อมชื่อ
0 25 จอห์น
1 30 Smith
2 50 พอล
3 26 อาดัม

เรียงลำดับค่า

คุณสามารถเรียงลำดับค่าด้วย sort_values

df_concat.sort_values('Age')
อายุ พร้อมชื่อ
4 11 Smith
0 25 จอห์น
3 26 อาดัม
1 30 Smith
2 50 พอล

เปลี่ยนชื่อ: การเปลี่ยนแปลงดัชนี

คุณสามารถใช้การเปลี่ยนชื่อเพื่อเปลี่ยนชื่อคอลัมน์ใน Pandas ค่าแรกคือชื่อคอลัมน์ปัจจุบัน และค่าที่สองคือชื่อคอลัมน์ใหม่

df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
อายุ_คน นามสกุล
0 25 จอห์น
1 30 Smith
2 50 พอล
3 26 อาดัม
4 11 Smith

สรุป

ด้านล่างนี้เป็นบทสรุปของวิธีการที่มีประโยชน์ที่สุดสำหรับวิทยาศาสตร์ข้อมูลกับ Pandas

นำเข้าข้อมูล read_csv
สร้างซีรีส์ ชุด
สร้างดาต้าเฟรม ดาต้าเฟรม
สร้างช่วงวันที่ DATE_RANGE
กลับหัว หัว
หางกลับ หาง
บรรยาย บรรยาย
ชิ้นโดยใช้ชื่อ ชื่อข้อมูล['ชื่อคอลัมน์']
หั่นโดยใช้แถว ข้อมูล_ชื่อ[0:5]

สรุปโพสต์นี้ด้วย: