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

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

6
ฉันจะเขียนข้อมูลในรูปแบบ CSV เป็นสตริง (ไม่ใช่ไฟล์) ได้อย่างไร
ฉันต้องการแคสต์ข้อมูลเช่นเดียว[1,2,'a','He said "what do you mean?"']กับสตริงที่มีรูปแบบ CSV โดยปกติจะใช้csv.writer()สำหรับสิ่งนี้เพราะมันจัดการกับกรณี edge ที่บ้าคลั่งทั้งหมด (การหลบหนีด้วยลูกน้ำ, เครื่องหมายอัญประกาศ, ภาษาถิ่น CSV ฯลฯ ) สิ่งที่จับได้คือcsv.writer()คาดว่าจะส่งออกไปยังอ็อบเจ็กต์ไฟล์ไม่ใช่สตริง โซลูชันปัจจุบันของฉันคือฟังก์ชันที่ค่อนข้างแฮ็ค: def CSV_String_Writeline(data): class Dummy_Writer: def write(self,instring): self.outstring = instring.strip("\r\n") dw = Dummy_Writer() csv_w = csv.writer( dw ) csv_w.writerow(data) return dw.outstring ใครสามารถให้โซลูชันที่หรูหรากว่านี้ที่ยังคงจัดการกับขอบเคสได้ดี แก้ไข: นี่คือวิธีที่ฉันทำ: def csv2string(data): si = StringIO.StringIO() cw = csv.writer(si) cw.writerow(data) …
119 python  string  csv 

11
การค้นหาโฟลเดอร์ย่อยแบบเรียกซ้ำและส่งคืนไฟล์ในรายการ python
ฉันกำลังทำงานกับสคริปต์เพื่อเรียกดูโฟลเดอร์ย่อยในโฟลเดอร์หลักซ้ำ ๆ และสร้างรายการจากไฟล์บางประเภท ฉันมีปัญหากับสคริปต์ ชุดปัจจุบันมีดังนี้ for root, subFolder, files in os.walk(PATH): for item in files: if item.endswith(".txt") : fileNamePath = str(os.path.join(root,subFolder,item)) ปัญหาคือตัวแปร subFolder ดึงรายการของโฟลเดอร์ย่อยแทนที่จะเป็นโฟลเดอร์ที่มีไฟล์ ITEM อยู่ ฉันคิดว่าจะใช้ for loop สำหรับโฟลเดอร์ย่อยมาก่อนและเข้าร่วมส่วนแรกของเส้นทาง แต่ฉันคิดว่า Id ตรวจสอบอีกครั้งเพื่อดูว่าใครมีข้อเสนอแนะก่อนหน้านั้นหรือไม่ ขอบคุณสำหรับความช่วยเหลือของคุณ!

8
คอลัมน์เวกเตอร์ y ถูกส่งผ่านเมื่อคาดว่าอาร์เรย์ 1d
ฉันต้องพอดีRandomForestRegressorจากsklearn.ensemble. forest = ensemble.RandomForestRegressor(**RF_tuned_parameters) model = forest.fit(train_fold, train_y) yhat = model.predict(test_fold) รหัสนี้ใช้งานได้ตลอดจนกระทั่งฉันทำการประมวลผลข้อมูลล่วงหน้า ( train_y) ข้อความแสดงข้อผิดพลาดระบุว่า: DataConversionWarning: คอลัมน์เวกเตอร์ y ถูกส่งผ่านเมื่อคาดว่าอาร์เรย์ 1d โปรดเปลี่ยนรูปร่างของ y เป็น (n_samples,) เช่นใช้ ravel () รุ่น = forest.fit (train_fold, train_y) ก่อนหน้าtrain_yนี้เป็นซีรี่ส์ตอนนี้เป็นอาร์เรย์จำนวนนับ (เป็นคอลัมน์เวกเตอร์) ถ้าฉันใช้train_y.ravel()มันจะกลายเป็นเวกเตอร์แถวและไม่มีข้อความแสดงข้อผิดพลาดปรากฏขึ้นผ่านขั้นตอนการคาดคะเนใช้เวลานานมาก (จริง ๆ แล้วมันจะไม่เสร็จสิ้น ... ) ในเอกสารของRandomForestRegressorฉันพบว่าtrain_yควรกำหนดเป็นy : array-like, shape = [n_samples] or [n_samples, n_outputs] ความคิดใด …

3
จะทดสอบได้อย่างไรว่าสตริงมีสตริงย่อยในรายการเป็นแพนด้าหรือไม่?
มีฟังก์ชันใดบ้างที่จะเทียบเท่ากับการรวมกันของdf.isin()และdf[col].str.contains()? ตัวอย่างเช่นพูดว่าฉันมีซีรีส์ s = pd.Series(['cat','hat','dog','fog','pet'])และฉันต้องการค้นหาสถานที่ทั้งหมดที่sมีทั้งหมด['og', 'at']ฉันอยากได้ทุกอย่างยกเว้น 'สัตว์เลี้ยง' ฉันมีวิธีแก้ปัญหา แต่มันค่อนข้างไม่ดี: searchfor = ['og', 'at'] found = [s.str.contains(x) for x in searchfor] result = pd.DataFrame[found] result.any() มีวิธีที่ดีกว่านี้หรือไม่?


27
โมเดล Django“ ไม่ได้ประกาศ app_label อย่างชัดเจน”
ฉันสิ้นปัญญา หลังจากแก้ไขปัญหามาหลายสิบชั่วโมงอาจมากกว่านั้นฉันคิดว่าในที่สุดฉันก็ทำธุรกิจได้ แต่แล้วฉันก็: Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label มีข้อมูลมากมายเกี่ยวกับเรื่องนี้บนเว็บและไม่มีวิธีแก้ปัญหาใดที่สามารถแก้ไขปัญหาของฉันได้ คำแนะนำใด ๆ จะได้รับการชื่นชมอย่างมาก ฉันใช้ Python 3.4 และ Django 1.10 จาก settings.py ของฉัน: INSTALLED_APPS = [ 'DeleteNote.apps.DeletenoteConfig', 'LibrarySync.apps.LibrarysyncConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] และไฟล์ apps.py ของฉันมีลักษณะดังนี้: from django.apps import AppConfig class DeletenoteConfig(AppConfig): name = 'DeleteNote' และ from …

14
Pipenv: ไม่พบคำสั่ง
ฉันยังใหม่กับการพัฒนา Python และพยายามใช้ pipenv ฉันรันคำสั่งpip install pipenvซึ่งทำงานได้สำเร็จ: ... Successfully built pipenv pathlib shutilwhich pythonz-bd virtualenv-clone Installing collected packages: virtualenv, pathlib, shutilwhich, backports.shutil-get-terminal-size, pythonz-bd, virtualenv-clone, pew, first, six, click, pip-tools, certifi, chardet, idna, urllib3, requests, pipenv ... อย่างไรก็ตามเมื่อฉันรันคำสั่งpipenv installในไดเร็กทอรีโปรเจ็กต์รูทใหม่ฉันได้รับข้อความต่อไปนี้: -bash: pipenv: command not found. ฉันสงสัยว่าฉันอาจต้องแก้ไข. bashrc ของฉัน แต่ฉันไม่ชัดเจนว่าจะเพิ่มอะไรลงในไฟล์หรือหากจำเป็นต้องปรับเปลี่ยน
119 python  python-3.x  pip  pipenv 

5
เพิ่มคำนำหน้าสตริงให้กับแต่ละค่าในคอลัมน์สตริงโดยใช้ Pandas
ฉันต้องการต่อท้ายสตริงที่จุดเริ่มต้นของแต่ละค่าในคอลัมน์ดังกล่าวของดาต้าเฟรมแพนด้า (อย่างหรูหรา) ฉันได้หาวิธีการประเภทนี้แล้วและฉันกำลังใช้: df.ix[(df['col'] != False), 'col'] = 'str'+df[(df['col'] != False), 'col'] นี่ดูเหมือนเป็นสิ่งที่ไม่ดีอย่างหนึ่งที่ต้องทำ - คุณรู้วิธีอื่นหรือไม่ (ซึ่งอาจเพิ่มอักขระในแถวที่คอลัมน์นั้นเป็น 0 หรือ NaN) ในกรณีที่ยังไม่ชัดเจนฉันต้องการเปลี่ยน: col 1 a 2 0 เข้าสู่: col 1 stra 2 str0

7
วิธี pythonic ในการหลีกเลี่ยงพารามิเตอร์เริ่มต้นที่เป็นรายการว่างคืออะไร?
บางครั้งดูเหมือนเป็นธรรมชาติที่จะมีพารามิเตอร์เริ่มต้นซึ่งเป็นรายการว่าง แต่งูใหญ่ให้พฤติกรรมที่ไม่คาดคิดในสถานการณ์เหล่านี้ ตัวอย่างเช่นฉันมีฟังก์ชัน: def my_func(working_list = []): working_list.append("a") print(working_list) ครั้งแรกที่เรียกว่าค่าเริ่มต้นจะใช้งานได้ แต่การโทรหลังจากนั้นจะอัปเดตรายการที่มีอยู่ (โดยมี "a" แต่ละสาย) และพิมพ์เวอร์ชันที่อัปเดต ดังนั้นอะไรคือวิธี pythonic ในการรับพฤติกรรมที่ฉันต้องการ (รายการใหม่ในการโทรแต่ละครั้ง)?
119 python  python-3.x 

3
วิธีสร้างคุณสมบัตินามธรรมในคลาสนามธรรมของ python
Baseในรหัสต่อไปนี้ฉันจะสร้างฐานระดับนามธรรม ฉันต้องการให้คลาสทั้งหมดที่สืบทอดมาBaseเพื่อจัดหาnameคุณสมบัติดังนั้นฉันจึงสร้างคุณสมบัตินี้เป็น@abstractmethod. จากนั้นฉันก็สร้างคลาสย่อยที่Baseเรียกว่าBase_1ซึ่งมีไว้เพื่อจัดหาฟังก์ชันการทำงานบางอย่าง แต่ยังคงเป็นนามธรรม ไม่มีnameคุณสมบัติในBase_1แต่อย่างไรก็ตาม python จะติดตั้งอ็อบเจ็กต์ของคลาสนั้นโดยไม่มีข้อผิดพลาด หนึ่งสร้างคุณสมบัติที่เป็นนามธรรมได้อย่างไร? from abc import ABCMeta, abstractmethod class Base(object): __metaclass__ = ABCMeta def __init__(self, strDirConfig): self.strDirConfig = strDirConfig @abstractmethod def _doStuff(self, signals): pass @property @abstractmethod def name(self): #this property will be supplied by the inheriting classes #individually pass class Base_1(Base): __metaclass__ = ABCMeta # …

6
ความแตกต่างระหว่าง numpy dot () และการคูณเมทริกซ์ Python 3.5+ @
ฉันเพิ่งย้ายไป Python 3.5 และสังเกตเห็นผู้ประกอบการคูณเมทริกซ์ใหม่ (@)บางครั้งทำงานแตกต่างกันจากจุด numpyผู้ประกอบการ ตัวอย่างเช่นสำหรับอาร์เรย์ 3 มิติ: import numpy as np a = np.random.rand(8,13,13) b = np.random.rand(8,13,13) c = a @ b # Python 3.5+ d = np.dot(a, b) ตัว@ดำเนินการส่งคืนอาร์เรย์ของรูปร่าง: c.shape (8, 13, 13) ในขณะที่np.dot()ฟังก์ชันส่งกลับ: d.shape (8, 13, 8, 13) ฉันจะสร้างผลลัพธ์เดียวกันด้วย numpy dot ได้อย่างไร มีความแตกต่างที่สำคัญอื่น ๆ หรือไม่?

14
วิธีการที่ผิดปกติ (ระเบิด) คอลัมน์ใน DataFrame แพนด้า
ฉันมี DataFrame ต่อไปนี้โดยที่หนึ่งในคอลัมน์เป็นวัตถุ (เซลล์ประเภทรายการ): df=pd.DataFrame({'A':[1,2],'B':[[1,2],[1,2]]}) df Out[458]: A B 0 1 [1, 2] 1 2 [1, 2] ผลลัพธ์ที่ฉันคาดหวังคือ: A B 0 1 1 1 1 2 3 2 1 4 2 2 ฉันควรทำอย่างไรเพื่อให้บรรลุเป้าหมายนี้ คำถามที่เกี่ยวข้อง แพนด้า: เมื่อเนื้อหาของเซลล์เป็นรายการให้สร้างแถวสำหรับแต่ละองค์ประกอบในรายการ คำถามและคำตอบที่ดี แต่จัดการเพียงคอลัมน์เดียวที่มีรายการ (ในคำตอบของฉันฟังก์ชั่น self-def จะใช้งานได้กับหลายคอลัมน์นอกจากนี้คำตอบที่ยอมรับคือใช้เวลามากที่สุดapplyซึ่งไม่แนะนำให้ตรวจสอบข้อมูลเพิ่มเติมเมื่อฉันต้องการ การใช้แพนด้าใช้ () ในรหัสของฉัน? )
119 python  pandas  dataframe 

6
ทำไมใน Python จึง“ 0, 0 == (0, 0)” เท่ากับ“ (0, False)”
ใน Python (ฉันตรวจสอบด้วย Python 3.6 เท่านั้น แต่ฉันเชื่อว่ามันควรจะเก็บไว้สำหรับเวอร์ชันก่อนหน้านี้ด้วย): (0, 0) == 0, 0 # results in a two element tuple: (False, 0) 0, 0 == (0, 0) # results in a two element tuple: (0, False) (0, 0) == (0, 0) # results in a boolean True แต่: a = 0, …

7
ขนาดในหน่วยความจำของโครงสร้าง Python
มีการอ้างอิงขนาดหน่วยความจำของโครงสร้างข้อมูล Python บนแพลตฟอร์ม 32- และ 64 บิตหรือไม่ ถ้าไม่เช่นนั้นก็คงจะดีถ้ามีใน SO ยิ่งละเอียดยิ่งดี! โครงสร้าง Python ต่อไปนี้ใช้กี่ไบต์ (ขึ้นอยู่กับlenและประเภทเนื้อหาเมื่อเกี่ยวข้อง) int float การอ้างอิง str สตริง Unicode tuple list dict set array.array numpy.array deque วัตถุคลาสรูปแบบใหม่ วัตถุคลาสแบบเก่า ... และทุกสิ่งที่ฉันลืม! (สำหรับคอนเทนเนอร์ที่เอาแต่อ้างอิงไปยังออบเจ็กต์อื่นเราไม่ต้องการนับขนาดของรายการด้วยตนเองเนื่องจากอาจมีการแชร์) นอกจากนี้ยังมีวิธีรับหน่วยความจำที่อ็อบเจ็กต์ใช้ในรันไทม์ (เรียกซ้ำหรือไม่)?

13
การส่งเมลจาก Python โดยใช้ SMTP
ฉันใช้วิธีต่อไปนี้เพื่อส่งอีเมลจาก Python โดยใช้ SMTP เป็นวิธีการที่ถูกต้องหรือมี gotchas ที่ฉันหายไป? from smtplib import SMTP import datetime debuglevel = 0 smtp = SMTP() smtp.set_debuglevel(debuglevel) smtp.connect('YOUR.MAIL.SERVER', 26) smtp.login('USERNAME@DOMAIN', 'PASSWORD') from_addr = "John Doe <john@doe.net>" to_addr = "foo@bar.com" subj = "hello" date = datetime.datetime.now().strftime( "%d/%m/%Y %H:%M" ) message_text = "Hello\nThis is a mail from your server\n\nBye\n" …
118 python  smtp 

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