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

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

9
โหลดข้อมูลจาก txt ด้วยนุ่น
ฉันกำลังโหลดไฟล์ txt มีการผสมผสานระหว่างข้อมูลลอยและสตริง ฉันต้องการเก็บไว้ในอาร์เรย์ที่ฉันสามารถเข้าถึงแต่ละองค์ประกอบ ตอนนี้ฉันกำลังทำ import pandas as pd data = pd.read_csv('output_list.txt', header = None) print data 1 0 2000.0 70.2836942112 1347.28369421 /file_address.txtนี่คือโครงสร้างของแฟ้มใส่ไปนี้: ตอนนี้ข้อมูลจะถูกนำเข้าเป็นคอลัมน์ที่ไม่ซ้ำกัน ฉันจะแบ่งมันได้อย่างไรเพื่อเก็บองค์ประกอบต่าง ๆ แยกกัน (เพื่อที่ฉันจะได้โทรหาdata[i,j]) และฉันจะกำหนดส่วนหัวได้อย่างไร
159 python  io  pandas 

6
ตัวบ่งชี้ความคืบหน้าในระหว่างการดำเนินการแพนด้า
ฉันดำเนินการแพนด้าในกรอบข้อมูลเกินกว่า 15 ล้านแถวเป็นประจำและฉันชอบที่จะเข้าถึงตัวบ่งชี้ความคืบหน้าสำหรับการดำเนินงานเฉพาะอย่าง ตัวบ่งชี้ความคืบหน้าของข้อความที่ใช้สำหรับการดำเนินการแบบแยกส่วนร่วมใช้กับแพนด้ามีอยู่หรือไม่? ตัวอย่างเช่นในสิ่งที่ชอบ: df_users.groupby(['userID', 'requestDate']).apply(feature_rollup) โดยที่feature_rollupฟังก์ชั่นที่เกี่ยวข้องจะมีคอลัมน์ DF จำนวนมากและสร้างคอลัมน์ผู้ใช้ใหม่ผ่านวิธีการต่างๆ การดำเนินการเหล่านี้อาจใช้เวลาสักครู่สำหรับเฟรมข้อมูลขนาดใหญ่ดังนั้นฉันต้องการทราบว่าเป็นไปได้หรือไม่ที่จะมีเอาต์พุตแบบข้อความในโน้ตบุ๊ก iPython ที่อัปเดตฉันในความคืบหน้า ถึงตอนนี้ฉันได้ลองใช้ตัวบ่งชี้ความคืบหน้าของ canonical สำหรับ Python แต่พวกมันไม่ได้โต้ตอบกับ pandas ในทางที่มีความหมายใด ๆ ฉันหวังว่าจะมีบางสิ่งที่ฉันมองข้ามในห้องสมุด / เอกสารของแพนด้าที่ช่วยให้เราทราบถึงความคืบหน้าของการแยกแบบรวมใช้ การใช้งานอย่างง่ายอาจจะดูจำนวนรวมของเซ็ตย่อย data frame ตามที่applyฟังก์ชันกำลังทำงานและรายงานความคืบหน้าเป็นเศษส่วนที่สมบูรณ์ของเซตย่อยเหล่านั้น นี่อาจเป็นสิ่งที่ต้องเพิ่มในไลบรารีหรือไม่
158 python  pandas  ipython 

9
จะแทนที่ NaN ด้วยค่านำหน้าใน DataFrame ของแพนด้าได้อย่างไร
สมมติว่าฉันมี DataFrame กับNaNs: >>> import pandas as pd >>> df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]]) >>> df 0 1 2 0 1 2 3 1 4 NaN NaN 2 NaN NaN 9 สิ่งที่ฉันต้องทำคือแทนที่ทุกค่าด้วยค่าที่NaNไม่ใช่NaNค่าแรกในคอลัมน์เดียวกันด้านบน สันนิษฐานว่าแถวแรกจะไม่มีNaN. ดังนั้นสำหรับตัวอย่างก่อนหน้าผลลัพธ์จะเป็น 0 1 2 0 1 2 3 1 4 2 …

12
การกรอง Pandas DataFrames ตามวันที่
ฉันมี Pandas DataFrame พร้อมคอลัมน์ 'วันที่' ตอนนี้ฉันต้องกรองแถวทั้งหมดใน DataFrame ที่มีวันที่อยู่นอกสองเดือนถัดไป โดยพื้นฐานแล้วฉันจะต้องรักษาแถวที่อยู่ภายในสองเดือนถัดไป อะไรคือวิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้?

6
วิธีการแบ่งข้อมูลออกเป็น 3 ชุด (การฝึกอบรมการตรวจสอบความถูกต้องและการทดสอบ)?
ฉันมีดาต้าเฟรมแพนด้าและฉันต้องการแบ่งเป็น 3 ชุดแยกกัน ฉันรู้ว่าการใช้train_test_splitจากsklearn.cross_validationหนึ่งสามารถแบ่งข้อมูลออกเป็นสองชุด (ฝึกและทดสอบ) อย่างไรก็ตามฉันไม่พบวิธีแก้ปัญหาเกี่ยวกับการแบ่งข้อมูลออกเป็นสามชุด โดยเฉพาะอย่างยิ่งฉันต้องการมีดัชนีของข้อมูลต้นฉบับ ฉันรู้ว่าวิธีแก้ปัญหาคือต้องใช้train_test_splitสองครั้งและปรับดัชนี แต่มีวิธีมาตรฐาน / ในตัวมากกว่าในการแบ่งข้อมูลออกเป็น 3 ชุดแทนที่จะเป็น 2 หรือไม่?

9
วิธีการตรวจสอบว่าคอลัมน์ Pandas มีค่าเฉพาะ
ฉันพยายามที่จะตรวจสอบว่ามีรายการในคอลัมน์นุ่นที่มีค่าเฉพาะ if x in df['id']ผมพยายามที่จะทำเช่นนี้กับ ฉันคิดว่านี้เป็นคนที่ทำงานยกเว้นเมื่อเราเลี้ยงมันคุ้มค่าที่ฉันรู้ไม่ได้อยู่ในคอลัมน์ก็ยังคงกลับมา43 in df['id'] Trueเมื่อฉันเซ็ตย่อยไปยังเฟรมข้อมูลที่มีรายการที่ตรงกับ id ที่หายไปdf[df['id'] == 43]เท่านั้นจะไม่มีรายการอยู่ในนั้น ฉันจะตรวจสอบได้อย่างไรว่าคอลัมน์ในกรอบข้อมูลของ Pandas มีค่าเฉพาะและทำไมวิธีการปัจจุบันของฉันจึงไม่ทำงาน (FYI ฉันมีปัญหาเดียวกันเมื่อฉันใช้งานในคำตอบนี้กับคำถามที่คล้ายกัน)
156 python  pandas 

6
ค้นหา“ ไม่มี - ไม่มี” บน DataFrame ในแพนด้า
ฉันทำการค้นหาบางอย่างแล้วและไม่สามารถหาวิธีกรองดาต้าเฟรมได้df["col"].str.contains(word)แต่ฉันสงสัยว่ามีวิธีการย้อนกลับหรือไม่: กรองดาต้าเฟรมตามคำชมของชุดนั้น !(df["col"].str.contains(word))เช่นผลกระทบของ สามารถทำได้ด้วยDataFrameวิธีการหรือไม่?
156 python  pandas  contains 

8
python dataframe pandas drop column โดยใช้ int
ฉันเข้าใจว่าการวางคอลัมน์คุณใช้ df.drop ('ชื่อคอลัมน์', แกน = 1) มีวิธีการวางคอลัมน์โดยใช้ดัชนีตัวเลขแทนชื่อคอลัมน์หรือไม่
155 python  pandas  dataframe 

10
นุ่นรับค่าเฉลี่ยคอลัมน์ / ค่าเฉลี่ย
ฉันไม่สามารถรับค่าเฉลี่ยหรือค่าเฉลี่ยของคอลัมน์เป็นนุ่น มี dataframe สิ่งที่ฉันลองด้านล่างไม่ได้ให้ค่าเฉลี่ยของคอลัมน์weight >>> allDF ID birthyear weight 0 619040 1962 0.1231231 1 600161 1963 0.981742 2 25602033 1963 1.3123124 3 624870 1987 0.94212 ต่อไปนี้จะคืนค่าหลายค่าไม่ใช่ค่าเดียว: allDF[['weight']].mean(axis=1) ดังนั้นสิ่งนี้: allDF.groupby('weight').mean()
155 python  pandas 

3
เปลี่ยน Pandas Multi-Index เป็นคอลัมน์
ฉันมีชื่อไฟล์ที่มีดัชนี 2 ระดับ: value Trial measurement 1 0 13 1 3 2 4 2 0 NaN 1 12 3 0 34 ซึ่งฉันต้องการเปลี่ยนเป็น: Trial measurement value 1 0 13 1 1 3 1 2 4 2 0 NaN 2 1 12 3 0 34 ฉันจะทำสิ่งนี้ได้อย่างไร ฉันต้องการสิ่งนี้เพราะฉันต้องการรวมข้อมูลตามคำแนะนำที่นี่แต่ฉันไม่สามารถเลือกคอลัมน์ของฉันเช่นนั้นหากพวกเขาใช้เป็นดัชนี

5
วิธีเข้าถึง pandas groupby dataframe โดยใช้คีย์
ฉันจะเข้าถึง groupby dataframe ที่สอดคล้องกันในวัตถุ groupby โดยคีย์ได้อย่างไร ด้วย groupby ต่อไปนี้: rand = np.random.RandomState(1) df = pd.DataFrame({'A': ['foo', 'bar'] * 3, 'B': rand.randn(6), 'C': rand.randint(0, 20, 6)}) gb = df.groupby(['A']) ฉันสามารถย้ำผ่านมันเพื่อรับกุญแจและกลุ่ม: In [11]: for k, gp in gb: print 'key=' + str(k) print gp key=bar A B C 1 bar -0.611756 18 …

10
ค้นหาดัชนีขององค์ประกอบในซีรีย์นุ่น
ฉันรู้ว่านี่เป็นคำถามพื้นฐาน แต่ด้วยเหตุผลบางอย่างฉันไม่สามารถหาคำตอบได้ ฉันจะรับดัชนีขององค์ประกอบบางอย่างของซีรี่ส์ใน python python ได้อย่างไร (เกิดขึ้นครั้งแรกจะพอเพียง) เช่นฉันต้องการบางสิ่งเช่น: import pandas as pd myseries = pd.Series([1,4,0,7,5], index=[0,1,2,3,4]) print myseries.find(7) # should output 3 แน่นอนว่าเป็นไปได้ที่จะกำหนดวิธีดังกล่าวด้วยการวนซ้ำ: def find(s, el): for i in s.index: if s[i] == el: return i return None print find(myseries, 7) แต่ฉันคิดว่าควรจะมีวิธีที่ดีกว่า มีอะไรบ้าง
154 python  pandas 

3
ตัวดำเนินการเชิงตรรกะสำหรับการทำดัชนีบูลีนใน Pandas
ฉันทำงานกับดัชนีบูลีนในนุ่น คำถามคือทำไมคำสั่ง: a[(a['some_column']==some_number) & (a['some_other_column']==some_other_number)] ทำงานได้ดีในขณะที่ a[(a['some_column']==some_number) and (a['some_other_column']==some_other_number)] ออกจากข้อผิดพลาดหรือไม่ ตัวอย่าง: a=pd.DataFrame({'x':[1,1],'y':[10,20]}) In: a[(a['x']==1)&(a['y']==10)] Out: x y 0 1 10 In: a[(a['x']==1) and (a['y']==10)] Out: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

7
Pandas: รวม DataFrame แถวสำหรับคอลัมน์ที่กำหนด
ฉันมี DataFrame ต่อไปนี้: In [1]: import pandas as pd df = pd.DataFrame({'a': [1,2,3], 'b': [2,3,4], 'c':['dd','ee','ff'], 'd':[5,9,1]}) df Out [1]: a b c d 0 1 2 dd 5 1 2 3 ee 9 2 3 4 ff 1 ผมอยากจะเพิ่มคอลัมน์'e'ซึ่งเป็นผลรวมของคอลัมน์'a', และ'b''d' จะข้ามฟอรัมฉันคิดว่าสิ่งนี้จะทำงาน: df['e'] = df[['a','b','d']].map(sum) แต่มันก็ไม่ได้ ฉันต้องการทราบการดำเนินการที่เหมาะสมกับรายการของคอลัมน์['a','b','d']และdfเป็นอินพุต
153 python  pandas  dataframe  sum 

5
จะกำจัดคอลัมน์“ Unnamed: 0” ใน pandas DataFrame ได้อย่างไร
ฉันมีสถานการณ์ขัดแย้งบางครั้งเมื่อฉันอ่านได้csvจากที่ฉันได้รับดัชนีเหมือนคอลัมน์ชื่อที่ไม่พึงประสงค์dfunnamed:0 file.csv ,A,B,C 0,1,2,3 1,4,5,6 2,7,8,9 CSV อ่านด้วยสิ่งนี้: pd.read_csv('file.csv') Unnamed: 0 A B C 0 0 1 2 3 1 1 4 5 6 2 2 7 8 9 มันน่ารำคาญมาก! ใครบ้างมีความคิดเกี่ยวกับวิธีการกำจัดนี้
152 python  pandas  csv  dataframe 

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