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

Python เป็นภาษาการเขียนโปรแกรมแบบหลายกระบวนทัศน์แบบไดนามิกพิมพ์อเนกประสงค์ มันถูกออกแบบมาให้เรียนรู้เข้าใจและใช้งานได้อย่างรวดเร็วและบังคับใช้ไวยากรณ์ที่สะอาดและสม่ำเสมอ โปรดทราบว่า Python 2 สนับสนุนอย่างเป็นทางการตั้งแต่วันที่ 01-01-2020 สำหรับคำถาม Python เฉพาะรุ่นให้เพิ่มแท็ก [python-2.7] หรือ [python-3.x] เมื่อใช้ตัวแปรหรือไลบรารี Python (เช่น Jython, PyPy, Pandas, Numpy) โปรดรวมไว้ในแท็ก



5
อ่านและเขียนทับไฟล์ใน Python
ตอนนี้ฉันกำลังใช้สิ่งนี้: f = open(filename, 'r+') text = f.read() text = re.sub('foobar', 'bar', text) f.seek(0) f.write(text) f.close() แต่ปัญหาคือไฟล์เก่ามีขนาดใหญ่กว่าไฟล์ใหม่ ดังนั้นฉันจึงจบลงด้วยไฟล์ใหม่ที่มีส่วนหนึ่งของไฟล์เก่าอยู่ด้านท้าย
109 python  file  overwrite 

6
วิธีวางลงใน REPL (Read, Eval, Print, Loop) จากโค้ด Python
มีวิธีบังคับให้สคริปต์ Python โดยทางโปรแกรมวางลงใน REPL ณ จุดใดจุดหนึ่งในการดำเนินการแม้ว่าสคริปต์จะถูกเรียกใช้จากบรรทัดคำสั่งหรือไม่ ฉันกำลังเขียนโปรแกรมพล็อตที่รวดเร็วและสกปรกซึ่งฉันต้องการอ่านข้อมูลจาก stdin หรือไฟล์พล็อตแล้วปล่อยลงใน REPL เพื่อให้สามารถปรับแต่งพล็อตได้

6
การแปลง SQLAlchemy ORM เป็น DataFrame แพนด้า
หัวข้อนี้ไม่ได้รับการแก้ไขมาสักระยะหนึ่งแล้วที่นี่หรือที่อื่น ๆ มีวิธีแก้ปัญหาในการแปลง SQLAlchemy <Query object>เป็น DataFrame แพนด้าหรือไม่? Pandas มีความสามารถในการใช้งานpandas.read_sqlแต่ต้องใช้ Raw SQL ฉันมีเหตุผลสองประการที่ต้องการหลีกเลี่ยง: 1) ฉันมีทุกอย่างแล้วโดยใช้ ORM (เหตุผลที่ดีในตัวของมันเอง) และ 2) ฉันใช้รายการไพ ธ อนเป็นส่วนหนึ่งของแบบสอบถาม (เช่นคลาสโมเดลของฉันอยู่.db.session.query(Item).filter(Item.symbol.in_(add_symbols)ที่ไหนItemและadd_symbolsเป็นรายการ). SELECT ... from ... WHERE ... INนี่คือเทียบเท่าของ SQL เป็นไปได้หรือไม่

5
แยกค่าคอลัมน์ตามดาต้าเฟรมแพนด้าของคอลัมน์อื่น
ฉันติดอยู่กับการแยกค่าของการปรับสภาพตัวแปรหนึ่งในตัวแปรอื่น ตัวอย่างเช่น dataframe ต่อไปนี้: A B p1 1 p1 2 p3 3 p2 4 ฉันจะได้รับมูลค่าAเมื่อไหร่B=3? ทุกครั้งที่ฉันแยกค่าของAฉันได้วัตถุไม่ใช่สตริง
109 python  pandas  dataframe 

11
ผลิตภัณฑ์คาร์ทีเซียนในหมีแพนด้า
ฉันมีดาต้าเฟรมของแพนด้าสองตัว: from pandas import DataFrame df1 = DataFrame({'col1':[1,2],'col2':[3,4]}) df2 = DataFrame({'col3':[5,6]}) แนวทางปฏิบัติที่ดีที่สุดในการรับผลิตภัณฑ์คาร์ทีเซียนคืออะไร (แน่นอนว่าไม่ต้องเขียนให้ชัดเจนเหมือนฉัน) #df1, df2 cartesian product df_cartesian = DataFrame({'col1':[1,2,1,2],'col2':[3,4,3,4],'col3':[5,5,6,6]})
109 python  pandas 

12
ฉันจะแบ่งข้อความเป็นประโยคได้อย่างไร
ฉันมีไฟล์ข้อความ ฉันต้องการรายชื่อประโยค วิธีนี้สามารถนำไปใช้? มีรายละเอียดปลีกย่อยมากมายเช่นจุดที่ใช้ในตัวย่อ นิพจน์ทั่วไปเก่าของฉันทำงานได้ไม่ดี: re.compile('(\. |^|!|\?)([A-Z][^;↑\.<>@\^&/\[\]]*(\.|!|\?) )',re.M)
109 python  text  split 

4
เปลี่ยนค่าหนึ่งตามค่าอื่นในแพนด้า
ฉันพยายามตั้งโปรแกรมรหัส Stata ของฉันใหม่ใน Python เพื่อปรับปรุงความเร็วและฉันถูกชี้ไปในทิศทางของ PANDAS อย่างไรก็ตามฉันมีช่วงเวลาที่ยากลำบากในการคิดวิธีประมวลผลข้อมูล สมมติว่าฉันต้องการวนซ้ำค่าทั้งหมดในหัวคอลัมน์ 'ID' หาก ID นั้นตรงกับตัวเลขที่ระบุฉันต้องการเปลี่ยนค่าที่ตรงกันสองค่า FirstName และ LastName ใน Stata มีลักษณะดังนี้: replace FirstName = "Matt" if ID==103 replace LastName = "Jones" if ID==103 ดังนั้นสิ่งนี้จะแทนที่ค่าทั้งหมดใน FirstName ที่สอดคล้องกับค่า ID == 103 ถึง Matt ในแพนดาสฉันกำลังลองอะไรแบบนี้ df = read_csv("test.csv") for i in df['ID']: if i ==103: ... …
109 python  pandas 

16
วิธีที่ดีที่สุดในการหาตัวหารของจำนวนทั้งหมดคืออะไร?
นี่เป็นวิธีที่โง่มาก: def divisorGenerator(n): for i in xrange(1,n/2+1): if n%i == 0: yield i yield n ผลลัพธ์ที่ฉันต้องการจะคล้ายกับผลลัพธ์นี้ แต่ฉันต้องการอัลกอริทึมที่ชาญฉลาดกว่านี้ (อันนี้ช้าและโง่เกินไป :-) ฉันสามารถหาปัจจัยเฉพาะและความทวีคูณได้เร็วพอ ฉันมีเครื่องกำเนิดไฟฟ้าที่สร้างปัจจัยด้วยวิธีนี้: (factor1, multiplicity1) (factor2, multiplicity2) (factor3, multiplicity3) และอื่น ๆ ... คือผลลัพธ์ของ for i in factorGenerator(100): print i คือ: (2, 2) (5, 2) ฉันไม่รู้ว่าสิ่งนี้มีประโยชน์แค่ไหนสำหรับสิ่งที่ฉันต้องการทำ (ฉันเขียนโค้ดสำหรับปัญหาอื่น ๆ ) อย่างไรก็ตามฉันต้องการวิธีที่ชาญฉลาดกว่านี้ในการทำ for i in …
109 python  algorithm  math 


5
ผนวกคอลัมน์เข้ากับฐานข้อมูลแพนด้า
อาจเป็นเรื่องง่าย แต่ฉันมีข้อมูลต่อไปนี้: ในกรอบข้อมูล 1: index dat1 0 9 1 5 ในกรอบข้อมูล 2: index dat2 0 7 1 6 ฉันต้องการกรอบข้อมูลที่มีรูปแบบต่อไปนี้: index dat1 dat2 0 9 7 1 5 6 ฉันได้ลองใช้appendวิธีนี้แล้ว แต่ฉันได้รับ cross join (เช่นผลิตภัณฑ์คาร์ทีเซียน) วิธีที่ถูกต้องคืออะไร?
109 python  pandas 

5
ตรวจสอบว่าอาร์เรย์ NumPy มีค่าที่ไม่ใช่ตัวเลขอย่างน้อยหนึ่งค่าหรือไม่?
ฉันต้องเขียนฟังก์ชันที่จะตรวจสอบว่าอินพุตมีค่าอย่างน้อยหนึ่งค่าที่ไม่ใช่ตัวเลขหรือไม่ หากพบค่าที่ไม่ใช่ตัวเลขฉันจะเพิ่มข้อผิดพลาด (เนื่องจากการคำนวณควรส่งคืนค่าตัวเลขเท่านั้น) ไม่ทราบจำนวนมิติของอาร์เรย์อินพุตล่วงหน้า - ฟังก์ชันควรให้ค่าที่ถูกต้องโดยไม่คำนึงถึง ndim ในฐานะที่เป็นความซับซ้อนเพิ่มเติมอินพุตอาจเป็นลูกลอยเดียวหรือnumpy.float64หรือแม้แต่บอลคี่เช่นอาร์เรย์ศูนย์มิติ วิธีที่ชัดเจนในการแก้ปัญหานี้คือการเขียนฟังก์ชันแบบวนซ้ำซึ่งจะวนซ้ำบนทุกออบเจ็กต์ที่ทำซ้ำได้ในอาร์เรย์จนกว่าจะพบสิ่งที่ไม่ใช่อิเทราบี จะใช้numpy.isnan()ฟังก์ชันนี้กับทุกออบเจ็กต์ที่ไม่สามารถทำซ้ำได้ หากพบค่าที่ไม่ใช่ตัวเลขอย่างน้อยหนึ่งค่าฟังก์ชันจะส่งคืน False ทันที มิฉะนั้นหากค่าทั้งหมดในการทำซ้ำเป็นตัวเลขจะส่งกลับ True ในที่สุด ใช้งานได้ดี แต่ค่อนข้างช้าและฉันคาดหวังว่าNumPyจะมีวิธีที่ดีกว่านี้มาก ทางเลือกอื่นที่เร็วกว่าและมึนงงคืออะไร? นี่คือต้นแบบของฉัน: def contains_nan( myarray ): """ @param myarray : An n-dimensional array or a single float @type myarray : numpy.ndarray, numpy.array, float @returns: bool Returns true if myarray is numeric or …
109 python  numpy 

5
แยกสตริงโดยใช้ตัวคั่นขึ้นบรรทัดใหม่ด้วย Python
ฉันต้องการคั่นสตริงที่มีบรรทัดใหม่อยู่ ฉันจะบรรลุมันได้อย่างไร? โปรดดูรหัสด้านล่าง อินพุต: data = """a,b,c d,e,f g,h,i j,k,l""" ผลลัพธ์ที่ต้องการ: ['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l'] ฉันได้ลองวิธีการด้านล่างแล้ว: 1. output = data.split('\n') 2. output = data.split('/n') 3. output = data.rstrip().split('\n')

6
วิธีค้นหาการอ้างอิงของแพ็คเกจ Python
คุณจะรับรายการการอ้างอิงของแพ็คเกจ Python โดยทางโปรแกรมได้อย่างไร มาตรฐานsetup.pyมีเอกสารเหล่านี้ แต่ฉันไม่พบวิธีง่ายๆในการเข้าถึงจาก Python หรือบรรทัดคำสั่ง ตามหลักการแล้วฉันกำลังมองหาสิ่งที่ต้องการ: $ pip install somepackage --only-list-deps kombu>=3.0.8 billiard>=3.3.0.13 boto>=2.26 หรือ: >>> import package_deps >>> package = package_deps.find('somepackage') >>> print package.dependencies ['kombu>=3.0.8', 'billiard>=3.3.0.13', 'boto>=2.26'] หมายเหตุฉันไม่ได้พูดถึงการนำเข้าแพ็คเกจและค้นหาโมดูลที่อ้างอิงทั้งหมด แม้ว่าสิ่งนี้อาจพบแพคเกจที่ขึ้นอยู่กับส่วนใหญ่ แต่ก็ไม่สามารถค้นหาหมายเลขเวอร์ชันขั้นต่ำที่ต้องการได้ ที่เก็บไว้ใน setup.py เท่านั้น
109 python  pip 

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