คำถามติดแท็ก pandas

Pandas เป็นห้องสมุด Python สำหรับการจัดการและวิเคราะห์ข้อมูลเช่น dataframes, อนุกรมเวลาหลายมิติและชุดข้อมูลแบบตัดขวางซึ่งมักพบในสถิติ, ผลการทดลองทางวิทยาศาสตร์, เศรษฐมิติหรือการเงิน Pandas เป็นหนึ่งในห้องสมุดวิทยาศาสตร์ข้อมูลที่สำคัญใน Python

8
แพนด้าสามารถจดจำวันที่ได้โดยอัตโนมัติหรือไม่
วันนี้ฉันรู้สึกประหลาดใจในเชิงบวกจากความจริงที่ว่าในขณะที่การอ่านข้อมูลจากไฟล์ข้อมูล (ตัวอย่าง) หมีแพนด้าสามารถรับรู้ชนิดของค่า: df = pandas.read_csv('test.dat', delimiter=r"\s+", names=['col1','col2','col3']) ตัวอย่างเช่นสามารถตรวจสอบด้วยวิธีนี้: for i, r in df.iterrows(): print type(r['col1']), type(r['col2']), type(r['col3']) โดยเฉพาะจำนวนเต็มลอยและสตริงได้รับการยอมรับอย่างถูกต้อง 2013-6-4แต่ผมมีคอลัมน์ที่มีวันที่ในรูปแบบต่อไปนี้: วันที่เหล่านี้ถูกจดจำเป็นสตริง (ไม่ใช่ python date-objects) มีวิธีที่จะ "เรียนรู้" หมีแพนด้าถึงวันที่ได้รับการยอมรับหรือไม่?
151 python  date  types  dataframe  pandas 

3
นุ่นสร้าง DataFrame ที่ว่างเปล่าด้วยชื่อคอลัมน์เท่านั้น
ฉันมี DataFrame แบบไดนามิกซึ่งทำงานได้ดี แต่เมื่อไม่มีข้อมูลที่จะเพิ่มลงใน DataFrame ฉันได้รับข้อผิดพลาด ดังนั้นฉันจึงต้องการโซลูชันในการสร้าง DataFrame ที่ว่างเปล่าที่มีเฉพาะชื่อคอลัมน์ ตอนนี้ฉันมีสิ่งนี้: df = pd.DataFrame(columns=COLUMN_NAMES) # Note that there are now row data inserted. PS: มันเป็นสิ่งสำคัญที่ชื่อคอลัมน์จะยังคงปรากฏใน DataFrame แต่เมื่อฉันใช้มันแบบนี้ฉันจะได้ผลลัพธ์ดังนี้: Index([], dtype='object') Empty DataFrame ส่วน "Data Data ว่างเปล่า" เป็นสิ่งที่ดี! แต่แทนที่จะเป็นสิ่งดัชนีฉันต้องยังคงแสดงคอลัมน์ แก้ไข: สิ่งสำคัญที่ฉันค้นพบ: ฉันกำลังแปลง DataFrame นี้เป็น PDF โดยใช้ Jinja2 ดังนั้นฉันจึงเรียกใช้เมธอดเพื่อส่งออกเป็น HTML ก่อนเช่นนั้น: df.to_html() ฉันคิดว่าคอลัมน์นี้หายไปไหน Edit2: …
151 python  pandas  dataframe 

9
เปลี่ยนชื่อ Pandas DataFrame Index
ฉันมีไฟล์ csv ที่ไม่มีส่วนหัวพร้อมดัชนี DateTime ฉันต้องการเปลี่ยนชื่อดัชนีและชื่อคอลัมน์ แต่ด้วย df.rename () จะเปลี่ยนชื่อคอลัมน์เท่านั้น เครื่องดักฟัง? ฉันใช้เวอร์ชัน 0.12.0 In [2]: df = pd.read_csv(r'D:\Data\DataTimeSeries_csv//seriesSM.csv', header=None, parse_dates=[[0]], index_col=[0] ) In [3]: df.head() Out[3]: 1 0 2002-06-18 0.112000 2002-06-22 0.190333 2002-06-26 0.134000 2002-06-30 0.093000 2002-07-04 0.098667 In [4]: df.rename(index={0:'Date'}, columns={1:'SM'}, inplace=True) In [5]: df.head() Out[5]: SM 0 2002-06-18 0.112000 …
151 python  pandas  dataframe 

12
การแทนที่ค่าว่าง (white space) ด้วย NaN ใน pandas
ฉันต้องการค้นหาค่าทั้งหมดใน Pandas dataframe ที่มีช่องว่าง (จำนวนเท่าใดก็ได้) และแทนที่ค่าเหล่านั้นด้วย NaNs ความคิดใด ๆ ที่สามารถปรับปรุงได้? โดยทั่วไปฉันต้องการที่จะเปิดนี้: A B C 2000-01-01 -0.532681 foo 0 2000-01-02 1.490752 bar 1 2000-01-03 -1.387326 foo 2 2000-01-04 0.814772 baz 2000-01-05 -0.222552 4 2000-01-06 -1.176781 qux เป็นนี้ A B C 2000-01-01 -0.532681 foo 0 2000-01-02 1.490752 bar 1 2000-01-03 -1.387326 foo …
150 python  pandas  dataframe 

5
Pandas dataframe รับแถวแรกของแต่ละกลุ่ม
ฉันมีแพนด้าDataFrameชอบติดตาม df = pd.DataFrame({'id' : [1,1,1,2,2,3,3,3,3,4,4,5,6,6,6,7,7], 'value' : ["first","second","second","first", "second","first","third","fourth", "fifth","second","fifth","first", "first","second","third","fourth","fifth"]}) ฉันต้องการจัดกลุ่มตาม ["id", "value"] และรับแถวแรกของแต่ละกลุ่ม id value 0 1 first 1 1 second 2 1 second 3 2 first 4 2 second 5 3 first 6 3 third 7 3 fourth 8 3 fifth 9 4 second 10 4 …
150 python  pandas  dataframe 

6
วิธีที่มีประสิทธิภาพในการใช้ตัวกรองหลายตัวกับแพนด้า DataFrame หรือซีรี่ส์
ฉันมีสถานการณ์ที่ผู้ใช้ต้องการใช้ตัวกรองหลายตัวกับวัตถุ Pandas DataFrame หรือชุดข้อมูล โดยพื้นฐานแล้วฉันต้องการโยงกลุ่มการกรอง (การดำเนินการเปรียบเทียบ) เข้าด้วยกันอย่างมีประสิทธิภาพซึ่งระบุไว้ ณ เวลาใช้งานโดยผู้ใช้ ตัวกรองควรเป็นสารเติมแต่ง (รู้จักกันว่าตัวกรองแต่ละตัวที่ใช้ควรทำให้ผลลัพธ์แคบลง) ขณะนี้ฉันกำลังใช้reindex()แต่สิ่งนี้สร้างวัตถุใหม่ทุกครั้งและคัดลอกข้อมูลพื้นฐาน (ถ้าฉันเข้าใจเอกสารอย่างถูกต้อง) ดังนั้นสิ่งนี้อาจไม่มีประสิทธิภาพจริง ๆ เมื่อกรองชุดข้อมูลขนาดใหญ่หรือ DataFrame ฉันคิดว่าการใช้apply(), map()หรือสิ่งที่คล้ายกันอาจจะดีกว่า ฉันค่อนข้างใหม่กับนุ่น แต่ก็ยังพยายามห่อหัวของฉันกับทุกสิ่ง TL; DR ฉันต้องการใช้พจนานุกรมของแบบฟอร์มต่อไปนี้และใช้การดำเนินการแต่ละอย่างกับวัตถุ Series ที่กำหนดและส่งคืนวัตถุซีรี่ส์ 'กรอง' relops = {'>=': [1], '<=': [1]} ตัวอย่างที่ยาวนาน ฉันจะเริ่มต้นด้วยตัวอย่างของสิ่งที่ฉันมีในปัจจุบันและเพียงแค่กรองวัตถุชุดเดียว ด้านล่างเป็นฟังก์ชั่นที่ฉันใช้อยู่: def apply_relops(series, relops): """ Pass dictionary of relational operators to perform on given series …
148 python  algorithm  pandas 

7
นุ่น: การตั้งค่าไม่ จำนวนแถวสูงสุด
ฉันมีปัญหาในการดูรายการต่อไปนี้DataFrame: n = 100 foo = DataFrame(index=range(n)) foo['floats'] = np.random.randn(n) foo ปัญหาคือมันไม่ได้พิมพ์ทุกแถวต่อค่าเริ่มต้นในโน้ตบุ๊ก ipython แต่ฉันต้องแบ่งเพื่อดูแถวที่เป็นผลลัพธ์ แม้แต่ตัวเลือกต่อไปนี้ก็ไม่เปลี่ยนผลลัพธ์: pd.set_option('display.max_rows', 500) ไม่มีใครรู้วิธีแสดงอาร์เรย์ทั้งหมด?

4
หลาม pandas: ใช้ฟังก์ชั่นที่มีข้อโต้แย้งกับซีรีส์
ฉันต้องการใช้ฟังก์ชั่นที่มีข้อโต้แย้งกับชุดใน python python: x = my_series.apply(my_function, more_arguments_1) y = my_series.apply(my_function, more_arguments_2) ... เอกสารอธิบายการสนับสนุนสำหรับวิธีการใช้ แต่ก็ไม่ได้ยอมรับข้อโต้แย้งใด ๆ มีวิธีอื่นที่ยอมรับการขัดแย้งไหม? หรือมิฉะนั้นฉันไม่มีวิธีแก้ปัญหาง่ายๆ อัปเดต (ตุลาคม 2017): โปรดทราบว่าเนื่องจากคำถามนี้ถูกถามตั้งแต่แรกว่าแพนด้าapply()ได้รับการอัปเดตเพื่อจัดการอาร์กิวเมนต์ตำแหน่งและคำหลักและลิงก์เอกสารด้านบนตอนนี้สะท้อนให้เห็นแล้วและแสดงวิธีรวมอาร์กิวเมนต์ประเภทใดประเภทหนึ่ง
147 python  pandas  apply 

9
pandas GroupBy คอลัมน์ที่มีค่า NaN (หายไป)
ฉันมี DataFrame ที่มีค่าหายไปจำนวนมากในคอลัมน์ที่ฉันต้องการจัดกลุ่มตาม: import pandas as pd import numpy as np df = pd.DataFrame({'a': ['1', '2', '3'], 'b': ['4', np.NaN, '6']}) In [4]: df.groupby('b').groups Out[4]: {'4': [0], '6': [2]} ดูว่า Pandas ทำดร็อปแถวด้วยค่าเป้าหมาย NaN (ฉันต้องการรวมแถวเหล่านี้ด้วย!) เนื่องจากฉันต้องการการดำเนินการหลายอย่าง (cols จำนวนมากมีค่าที่หายไป) และใช้ฟังก์ชันที่ซับซ้อนมากกว่าแค่สื่อกลาง (โดยทั่วไปคือป่าสุ่ม) ฉันต้องการหลีกเลี่ยงการเขียนโค้ดที่ซับซ้อนเกินไป ข้อเสนอแนะใด ๆ ฉันควรจะเขียนฟังก์ชั่นสำหรับสิ่งนี้หรือมีวิธีแก้ปัญหาง่ายๆหรือไม่?

6
Pandas read_csv จาก url
ฉันใช้ Python 3.4 กับ IPython และมีรหัสต่อไปนี้ ฉันไม่สามารถอ่านไฟล์ csv จาก URL ที่ระบุ: import pandas as pd import requests url="https://github.com/cs109/2014_data/blob/master/countries.csv" s=requests.get(url).content c=pd.read_csv(s) ฉันมีข้อผิดพลาดต่อไปนี้ "ชื่อพา ธ ไฟล์ที่คาดไว้หรืออ็อบเจ็กต์คล้ายไฟล์มีประเภท" ฉันจะแก้ไขปัญหานี้ได้อย่างไร?
147 python  csv  pandas  request 

2
เลือกแถวในแพนด้า MultiIndex DataFrame
สิ่งที่เป็นที่สุดวิธีหมีแพนด้าทั่วไปเพื่อเลือก / แถวกรองของdataframe ซึ่งเป็นดัชนี MultiIndex ? การแบ่งส่วนตามค่า / ป้ายกำกับเดียว การแบ่งส่วนตามป้ายกำกับหลายรายการตั้งแต่หนึ่งระดับขึ้นไป การกรองเงื่อนไขและนิพจน์บูลีน วิธีการใดที่ใช้ได้ในสถานการณ์ใด สมมติฐานเพื่อความเรียบง่าย: อินพุตดาต้าเฟรมไม่มีคีย์ดัชนีที่ซ้ำกัน อินพุตดาต้าเฟรมด้านล่างมีสองระดับเท่านั้น (วิธีแก้ปัญหาส่วนใหญ่ที่แสดงไว้ที่นี่เป็นระดับ N) ตัวอย่างการป้อนข้อมูล: mux = pd.MultiIndex.from_arrays([ list('aaaabbbbbccddddd'), list('tuvwtuvwtuvwtuvw') ], names=['one', 'two']) df = pd.DataFrame({'col': np.arange(len(mux))}, mux) col one two a t 0 u 1 v 2 w 3 b t 4 u 5 v 6 …

3
จะวนลูปมากกว่าดาต้าดาต้าของ Pandas ที่จัดกลุ่มได้อย่างไร
DataFrame: c_os_family_ss c_os_major_is l_customer_id_i 0 Windows 7 90418 1 Windows 7 90418 2 Windows 7 90418 รหัส: print df for name, group in df.groupby('l_customer_id_i').agg(lambda x: ','.join(x)): print name print group ฉันพยายามที่จะวนรอบข้อมูลรวม แต่ฉันได้รับข้อผิดพลาด: ValueError: มีค่าที่จะแกะออกมากเกินไป @EdChum นี่คือผลลัพธ์ที่คาดหวัง: c_os_family_ss \ l_customer_id_i 131572 Windows 7,Windows 7,Windows 7,Windows 7,Window... 135467 Windows 7,Windows 7,Windows 7,Windows …
146 python  pandas 

7
ค้นหาคอลัมน์ที่มีชื่อประกอบด้วยสตริงเฉพาะ
ฉันมีดาต้าเฟรมที่มีชื่อคอลัมน์และฉันต้องการค้นหาอันที่มีสตริงที่แน่นอน แต่ไม่ตรงกันทุกประการ ฉันค้นหา'spike'ในชื่อคอลัมน์ที่ชอบ'spike-2', 'hey spike', 'spiked-in'(คน'spike'ส่วนหนึ่งอยู่เสมอต่อเนื่อง) ฉันต้องการให้ชื่อคอลัมน์ถูกส่งคืนเป็นสตริงหรือตัวแปรดังนั้นฉันจึงเข้าถึงคอลัมน์ในภายหลังโดยมีdf['name']หรือdf[name]ตามปกติ ฉันพยายามหาวิธีการแล้ว แต่ก็ไม่มีประโยชน์ เคล็ดลับใด ๆ

7
Pandas dataframe fillna () มีบางคอลัมน์เท่านั้น
ฉันกำลังพยายามเติมค่าใด ๆ ในดาต้าดาต้าแพนด้าของ 0 สำหรับคอลัมน์ย่อยบางส่วนเท่านั้น เมื่อฉันทำ: import pandas as pd df = pd.DataFrame(data={'a':[1,2,3,None],'b':[4,5,None,6],'c':[None,None,7,8]}) print df df.fillna(value=0, inplace=True) print df ผลลัพธ์: a b c 0 1.0 4.0 NaN 1 2.0 5.0 NaN 2 3.0 NaN 7.0 3 NaN 6.0 8.0 a b c 0 1.0 4.0 0.0 1 2.0 5.0 0.0 …
145 python  pandas  dataframe 

7
อ่านไฟล์ Excel ในไพ ธ อนโดยใช้นุ่น
ฉันพยายามอ่านไฟล์ excel ด้วยวิธีนี้: newFile = pd.ExcelFile(PATH\FileName.xlsx) ParsedData = pd.io.parsers.ExcelFile.parse(newFile) ข้อผิดพลาดข้อใดที่ระบุข้อโต้แย้งสองข้อที่คาดว่าจะเกิดขึ้นฉันไม่ทราบว่าข้อโต้แย้งที่สองคืออะไรและสิ่งที่ฉันพยายามบรรลุที่นี่คือการแปลงไฟล์ Excel เป็น DataFrame ฉันกำลังทำอย่างถูกต้องหรือไม่ หรือมีวิธีอื่นในการทำเช่นนี้โดยใช้แพนด้า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.