การปรับแต่งการนำเข้าไฟล์แบบแบน

การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

Amany Mahfouz

Instructor

ข้อมูลภาษีสหรัฐฯ

tax_data = pd.read_csv('us_tax_data_2016.csv')

print(tax_data.shape)
(179796, 147)
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

การจำกัดคอลัมน์

  • เลือกคอลัมน์ที่ต้องการโหลดด้วย argument usecols
  • รับค่าเป็นลิสต์ของหมายเลขหรือชื่อคอลัมน์ หรือฟังก์ชันสำหรับกรองชื่อคอลัมน์
col_names = ['STATEFIPS', 'STATE', 'zipcode', 'agi_stub', 'N1']

col_nums = [0, 1, 2, 3, 4]
# Choose columns to load by name tax_data_v1 = pd.read_csv('us_tax_data_2016.csv', usecols=col_names)
# Choose columns to load by number tax_data_v2 = pd.read_csv('us_tax_data_2016.csv', usecols=col_nums)
print(tax_data_v1.equals(tax_data_v2))
True
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

การจำกัดแถว

  • จำกัดจำนวนแถวที่โหลดด้วย argument nrows
tax_data_first1000 = pd.read_csv('us_tax_data_2016.csv', nrows=1000)

print(tax_data_first1000.shape)
(1000, 147)
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

การจำกัดแถว

  • ใช้ nrows และ skiprows ร่วมกันเพื่อประมวลผลไฟล์เป็นส่วน ๆ
  • skiprows รับค่าเป็นลิสต์ของหมายเลขแถว จำนวนแถว หรือฟังก์ชันสำหรับกรองแถว
  • ตั้งค่า header=None เพื่อให้ pandas รู้ว่าไม่มีชื่อคอลัมน์
tax_data_next500 = pd.read_csv('us_tax_data_2016.csv', 
                               nrows=500, 
                               skiprows=1000, 
                               header=None)
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

การจำกัดแถว

print(tax_data_next500.head(1))
   0   1      2    3     4     5    6    7     8     9     10   ...    136  137   138  139  140  141  142  143   144   145   146
0    1  AL  35565    4   270     0  250    0   210   790   280  ...   1854  260  1978    0    0    0    0   50   222   210   794

[1 rows x 147 columns]
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

การกำหนดชื่อคอลัมน์

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

การกำหนดชื่อคอลัมน์

col_names = list(tax_data_first1000)

tax_data_next500 = pd.read_csv('us_tax_data_2016.csv',
nrows=500, skiprows=1000,
header=None,
names=col_names) print(tax_data_next500.head(1))
   STATEFIPS STATE  zipcode  agi_stub   ...  N11901  A11901  N11902  A11902
0          1    AL    35565         4   ...      50     222     210     794

[1 rows x 147 columns]
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

มาฝึกกันเถอะ!

การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

Preparing Video For Download...