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

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

11
เลือกตามสตริงบางส่วนจาก DataFrame แพนด้า
ฉันมีDataFrameคอลัมน์ 4 คอลัมน์โดยที่ 2 มีค่าสตริง ฉันสงสัยว่าจะมีวิธีในการเลือกแถวตามการจับคู่สตริงบางส่วนกับคอลัมน์ใดคอลัมน์หนึ่งหรือไม่? กล่าวอีกนัยหนึ่งฟังก์ชั่นหรือฟังก์ชั่นแลมบ์ดาที่จะทำอะไรเช่น re.search(pattern, cell_in_question) ส่งคืนบูลีน ผมคุ้นเคยกับไวยากรณ์ของแต่ดูเหมือนจะไม่สามารถหาวิธีที่จะทำเช่นเดียวกันกับสตริงการแข่งขันพูดบางส่วนdf[df['A'] == "hello world"]'hello' ใครบางคนจะสามารถชี้ให้ฉันไปในทิศทางที่ถูกต้อง?

9
สลับแถว DataFrame
ฉันมี DataFrame ต่อไปนี้: Col1 Col2 Col3 Type 0 1 2 3 1 1 4 5 6 1 ... 20 7 8 9 2 21 10 11 12 2 ... 45 13 14 15 3 46 16 17 18 3 ... DataFrame อ่านจากไฟล์ csv แถวทั้งหมดที่มีType1 อยู่ด้านบนตามด้วยแถวที่มีType2 ตามด้วยแถวที่มีType3 เป็นต้น ฉันต้องการสลับลำดับแถวของ DataFrame เพื่อให้ทุกอย่างTypeผสมกัน …

7
รับสถิติสำหรับแต่ละกลุ่ม (เช่นการนับค่าเฉลี่ยเป็นต้น) โดยใช้หมีแพนด้า GroupBy?
ฉันมีกรอบข้อมูลdfและฉันใช้หลายคอลัมน์จากgroupby: df['col1','col2','col3','col4'].groupby(['col1','col2']).mean() ในวิธีข้างต้นฉันเกือบจะได้รับตาราง (data frame) ที่ฉันต้องการ สิ่งที่ขาดหายไปคือคอลัมน์เพิ่มเติมที่มีจำนวนแถวในแต่ละกลุ่ม กล่าวอีกนัยหนึ่งฉันมีความหมาย แต่ฉันก็อยากจะรู้ว่าจำนวนที่ใช้ในการรับค่าเฉลี่ย ตัวอย่างเช่นในกลุ่มแรกมี 8 ค่าและใน 10 อันดับสองและอื่น ๆ กล่าวโดยย่อ: ฉันจะรับสถิติกลุ่มอย่างชาญฉลาดสำหรับดาต้าเฟรมได้อย่างไร

7
วิธีการกรองดาต้าดาต้าแพนด้าโดยใช้ 'ใน' และ 'ไม่ได้อยู่ใน' เช่นใน SQL
ฉันจะบรรลุผลเทียบเท่าของ SQL INและได้NOT INอย่างไร ฉันมีรายการที่มีค่าที่ต้องการ นี่คือสถานการณ์: df = pd.DataFrame({'countries':['US','UK','Germany','China']}) countries = ['UK','China'] # pseudo-code: df[df['countries'] not in countries] วิธีการทำสิ่งนี้ในปัจจุบันของฉันมีดังนี้: df = pd.DataFrame({'countries':['US','UK','Germany','China']}) countries = pd.DataFrame({'countries':['UK','China'], 'matched':True}) # IN df.merge(countries,how='inner',on='countries') # NOT IN not_in = df.merge(countries,how='left',on='countries') not_in = not_in[pd.isnull(not_in['matched'])] แต่ดูเหมือนว่าจะเป็นกระบองที่น่ากลัว ทุกคนสามารถปรับปรุงได้หรือไม่

18
UnicodeDecodeError เมื่ออ่านไฟล์ CSV ใน Pandas ด้วย Python
ฉันใช้งานโปรแกรมที่กำลังประมวลผลไฟล์ที่คล้ายกัน 30,000 ไฟล์ จำนวนสุ่มจะหยุดและสร้างข้อผิดพลาดนี้ ... File "C:\Importer\src\dfman\importer.py", line 26, in import_chr data = pd.read_csv(filepath, names=fields) File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 400, in parser_f return _read(filepath_or_buffer, kwds) File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 205, in _read return parser.read() File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 608, in read ret = self._engine.read(nrows) File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 1028, in read data = self._reader.read(nrows) …

6
วิธีหลีกเลี่ยง Python / Pandas สร้างดัชนีใน csv ที่บันทึกไว้ได้อย่างไร
ฉันพยายามบันทึก csv ไปยังโฟลเดอร์หลังจากทำการแก้ไขไฟล์ ทุกครั้งที่ฉันใช้pd.to_csv('C:/Path of file.csv')ไฟล์ csv จะมีคอลัมน์ของดัชนีแยกต่างหาก ฉันต้องการหลีกเลี่ยงการพิมพ์ดัชนีไปยัง csv ฉันเหนื่อย: pd.read_csv('C:/Path to file to edit.csv', index_col = False) และเพื่อบันทึกไฟล์ ... pd.to_csv('C:/Path to save edited file.csv', index_col = False) อย่างไรก็ตามฉันยังมีคอลัมน์ดัชนีที่ไม่ต้องการ ฉันจะหลีกเลี่ยงสิ่งนี้เมื่อฉันบันทึกไฟล์ได้อย่างไร
407 python  csv  indexing  pandas 

15
อิมพอร์ตไฟล์ csv หลายไฟล์ไปยัง pandas และต่อเข้ากับ DataFrame เดียว
ฉันต้องการอ่านไฟล์ csv หลายไฟล์จากไดเร็กตอรี่ไปเป็นนุ่นและเชื่อมต่อกันเป็น DataFrame ขนาดใหญ่ ฉันไม่สามารถเข้าใจมันได้ นี่คือสิ่งที่ฉันมีจนถึงตอนนี้: import glob import pandas as pd # get data file names path =r'C:\DRO\DCL_rawdata_files' filenames = glob.glob(path + "/*.csv") dfs = [] for filename in filenames: dfs.append(pd.read_csv(filename)) # Concatenate all data into one DataFrame big_frame = pd.concat(dfs, ignore_index=True) ฉันเดาว่าฉันต้องการความช่วยเหลือในการวนรอบ ???

6
การเลือกแถวของชุดข้อมูล / ดาต้าฟอร์มโดยดัชนีจำนวนเต็ม
ฉันอยากรู้ว่าทำไม df[2]ไม่ได้รับการสนับสนุนในขณะที่df.ix[2]และdf[2:3]ทั้งสองทำงาน In [26]: df.ix[2] Out[26]: A 1.027680 B 1.514210 C -1.466963 D -0.162339 Name: 2000-01-03 00:00:00 In [27]: df[2:3] Out[27]: A B C D 2000-01-03 1.02768 1.51421 -1.466963 -0.162339 ฉันคาดว่าdf[2]จะทำงานแบบเดียวกับdf[2:3]ที่สอดคล้องกับข้อตกลงการจัดทำดัชนีของ Python มีเหตุผลในการออกแบบที่ไม่สนับสนุนการทำดัชนีแถวด้วยจำนวนเต็มเดียวหรือไม่?

15
การสร้าง Panda DataFrame จากค่าในตัวแปรให้“ ValueError: หากใช้ค่าสเกลาร์ทั้งหมดคุณต้องผ่านดัชนี”
นี่อาจเป็นคำถามง่าย ๆ แต่ฉันไม่สามารถหาวิธีทำสิ่งนี้ได้ ให้บอกว่าฉันมีสองตัวแปรดังนี้ a = 2 b = 3 ฉันต้องการสร้าง DataFrame จากสิ่งนี้: df2 = pd.DataFrame({'A':a,'B':b}) สิ่งนี้สร้างข้อผิดพลาด: ValueError: หากใช้ค่าสเกลาร์ทั้งหมดคุณต้องผ่านดัชนี ฉันลองสิ่งนี้ด้วย: df2 = (pd.DataFrame({'a':a,'b':b})).reset_index() สิ่งนี้ทำให้ข้อความแสดงข้อผิดพลาดเดียวกัน

12
วิธีใช้ฟังก์ชันกับสองคอลัมน์ของ Pandas dataframe
สมมติว่าผมมีซึ่งมีคอลัมน์ของdf 'ID', 'col_1', 'col_2'และฉันกำหนดฟังก์ชั่น: f = lambda x, y : my_function_expression. ตอนนี้ผมต้องการที่จะใช้fในการdf's สองคอลัมน์'col_1', 'col_2'การคำนวณองค์ประกอบฉลาดคอลัมน์ใหม่'col_3'ค่อนข้างชอบ df['col_3'] = df[['col_1','col_2']].apply(f) # Pandas gives : TypeError: ('<lambda>() takes exactly 2 arguments (1 given)' วิธีการทำ ? ** เพิ่มตัวอย่างรายละเอียดดังนี้ *** import pandas as pd df = pd.DataFrame({'ID':['1','2','3'], 'col_1': [0,2,3], 'col_2':[1,4,5]}) mylist = ['a','b','c','d','e','f'] def get_sublist(sta,end): return …
368 python  pandas  dataframe 

6
ค่าความจริงของซีรี่ส์นั้นไม่ชัดเจน ใช้ a.empty, a.bool (), a.item (), a.any () หรือ a.all ()
มีปัญหาในการกรอง dataframe ผลลัพธ์โดยมีorเงื่อนไข ฉันต้องการผลลัพธ์ของฉันdfเพื่อแยกvarค่าคอลัมน์ทั้งหมดที่สูงกว่า 0.25 และต่ำกว่า -0.25 ตรรกะด้านล่างนี้ให้คุณค่าความจริงที่คลุมเครือกับฉัน แต่มันทำงานเมื่อฉันแยกตัวกรองนี้ออกเป็นสองการดำเนินการแยกกัน เกิดอะไรขึ้นที่นี่ ไม่แน่ใจว่าจะใช้ข้อเสนอแนะที่a.empty(), a.bool(), a.item(),a.any() or a.all()ใด result = result[(result['var']>0.25) or (result['var']<-0.25)]

2
Pandas การผสาน 101
วิธีดำเนินการ ( LEFT| RIGHT| FULL) ( INNER| OUTER) เข้าร่วมกับหมีแพนด้า? ฉันจะเพิ่ม NaNs สำหรับแถวที่หายไปหลังจากผสานได้อย่างไร ฉันจะกำจัด NaNs ได้อย่างไรหลังจากรวมกัน ฉันสามารถรวมกับดัชนีได้หรือไม่ ข้ามเข้าร่วมกับหมีแพนด้าไหม ฉันจะรวม DataFrames หลาย ๆ ตัวได้อย่างไร merge? join? concat? update? Who? อะไร? ทำไม?! ... และอื่น ๆ. ฉันเคยเห็นคำถามที่เกิดขึ้นซ้ำ ๆ เหล่านี้ซึ่งถามเกี่ยวกับแง่มุมต่าง ๆ ของการทำงานของหมีแพนด้า ข้อมูลส่วนใหญ่เกี่ยวกับการรวมและกรณีการใช้งานที่หลากหลายในทุกวันนี้มีการแยกส่วนจากการโพสต์ที่มีข้อความไม่ดีจำนวนมากและไม่สามารถค้นหาได้ จุดมุ่งหมายที่นี่คือการรวบรวมจุดสำคัญบางอย่างสำหรับลูกหลาน QnA นี้หมายถึงการผ่อนชำระครั้งต่อไปในชุดของคู่มือผู้ใช้ที่เป็นประโยชน์เกี่ยวกับสำนวนแพนด้าทั่วไป (ดูโพสต์เกี่ยวกับการหมุนเหวี่ยงและโพสต์นี้ในการเรียงต่อกัน โปรดทราบว่าโพสต์นี้ไม่ได้มีไว้เพื่อทดแทนเอกสารดังนั้นโปรดอ่านด้วย! ตัวอย่างบางส่วนนำมาจากที่นั่น
362 python  pandas  join  merge 

2
วิธีหมุนเดตาล็อกไฟล์
สาระสำคัญคืออะไร? ฉันจะหมุนได้อย่างไร นี่คือสาระสำคัญหรือไม่? รูปแบบยาวเป็นรูปแบบกว้าง? ฉันเห็นคำถามมากมายที่ถามเกี่ยวกับตารางเดือย แม้ว่าพวกเขาไม่รู้ว่าพวกเขากำลังถามเกี่ยวกับตารางสาระสำคัญพวกเขามักจะ มันแทบเป็นไปไม่ได้ที่จะเขียนคำถามและคำตอบที่ยอมรับได้ซึ่งครอบคลุมทุกแง่มุมของการหมุนเหวี่ยง ... ... แต่ฉันจะปล่อยมันไป ปัญหาเกี่ยวกับคำถามและคำตอบที่มีอยู่ก็คือคำถามมักมุ่งเน้นไปที่ความแตกต่างที่ OP มีปัญหาในการพูดคุยเพื่อใช้คำตอบที่ดีที่มีอยู่จำนวนมาก อย่างไรก็ตามไม่มีคำตอบใดที่พยายามให้คำอธิบายที่ครอบคลุม (เพราะมันเป็นงานที่น่ากลัว) ดูตัวอย่างจากการค้นหา googleของฉัน วิธีหมุนเดตาไฟล์ใน Pandas ได้อย่างไร คำถามและคำตอบที่ดี แต่คำตอบเพียงตอบคำถามเฉพาะพร้อมคำอธิบายเล็กน้อย pandas pivot table ไปยัง data frame ในคำถามนี้ OP เกี่ยวข้องกับผลลัพธ์ของ pivot คือลักษณะของคอลัมน์ OP ต้องการให้ดูเหมือน R นี่ไม่ได้มีประโยชน์มากสำหรับผู้ใช้แพนด้า pandas pivoting dataframe, แถวที่ซ้ำกัน อีกคำถามที่ดี แต่คำตอบนั้นเน้นที่วิธีหนึ่งคือ pd.DataFrame.pivot ดังนั้นเมื่อใดก็ตามที่มีคนค้นหาpivotพวกเขาจะได้ผลลัพธ์เป็นระยะ ๆ ซึ่งไม่น่าจะตอบคำถามเฉพาะของพวกเขา ติดตั้ง คุณอาจสังเกตเห็นว่าฉันตั้งชื่อคอลัมน์ของฉันและค่าคอลัมน์ที่เกี่ยวข้องอย่างชัดเจนเพื่อให้สอดคล้องกับวิธีที่ฉันจะ pivot …

11
วิธีรับค่าจากเซลล์ของ dataframe
ฉันได้สร้างเงื่อนไขที่ดึงหนึ่งแถวออกจาก data frame ของฉัน: d2 = df[(df['l_ext']==l_ext) & (df['item']==item) & (df['wn']==wn) & (df['wd']==1)] ตอนนี้ฉันต้องการนำค่าจากคอลัมน์ใดคอลัมน์หนึ่ง: val = d2['col_name'] แต่เป็นผลให้ฉันได้รับ data frame ที่มีหนึ่งแถวและหนึ่งคอลัมน์ ( เช่นหนึ่งเซลล์) มันไม่ใช่สิ่งที่ฉันต้องการ ฉันต้องการหนึ่งค่า (หมายเลขลอยหนึ่ง) ฉันจะทำมันด้วยแพนด้าได้ยังไง?
347 python  pandas  dataframe 

30
Python Pandas Error ในการโทเค็นข้อมูล
ฉันพยายามใช้นุ่นเพื่อจัดการไฟล์. csv แต่ฉันได้รับข้อผิดพลาดนี้: pandas.parser.CParserError: เกิดข้อผิดพลาดในการเก็บข้อมูล ข้อผิดพลาด C: ต้องการเขตข้อมูล 2 แห่งในบรรทัดที่ 3 เห็น 12 ฉันพยายามอ่านเอกสารของนุ่น แต่ไม่พบอะไรเลย รหัสของฉันง่าย: path = 'GOOG Key Ratios.csv' #print(open(path).read()) data = pd.read_csv(path) ฉันจะแก้ไขปัญหานี้ได้อย่างไร ฉันควรใช้csvโมดูลหรือภาษาอื่นหรือไม่? ไฟล์มาจากMorningstar
343 python  csv  pandas 

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