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

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

13
แสดงรายการคู่ความสัมพันธ์สูงสุดจากเมทริกซ์สหสัมพันธ์ขนาดใหญ่ในหมีแพนด้า?
คุณพบความสัมพันธ์อันดับต้น ๆ ในเมทริกซ์สหสัมพันธ์กับหมีแพนด้าได้อย่างไร? มีคำตอบมากมายเกี่ยวกับวิธีการทำสิ่งนี้กับ R ( แสดงความสัมพันธ์เป็นรายการสั่งซื้อไม่ใช่เมทริกซ์ขนาดใหญ่หรือวิธีที่มีประสิทธิภาพในการรับคู่ที่มีความสัมพันธ์กันสูงจากชุดข้อมูลขนาดใหญ่ใน Python หรือ R ) แต่ฉันสงสัยว่าจะทำอย่างไร กับแพนด้า? ในกรณีของฉันเมทริกซ์คือ 4460x4460 ดังนั้นจึงไม่สามารถมองเห็นได้

3
จำนวนรวมของหมีแพนด้าแตกต่างกัน
สมมติว่าฉันมีบันทึกกิจกรรมของผู้ใช้และฉันต้องการสร้างรายงานระยะเวลารวมและจำนวนผู้ใช้ที่ไม่ซ้ำกันต่อวัน import numpy as np import pandas as pd df = pd.DataFrame({'date': ['2013-04-01','2013-04-01','2013-04-01','2013-04-02', '2013-04-02'], 'user_id': ['0001', '0001', '0002', '0002', '0002'], 'duration': [30, 15, 20, 15, 30]}) ระยะเวลารวมค่อนข้างตรงไปตรงมา: group = df.groupby('date') agg = group.aggregate({'duration': np.sum}) agg duration date 2013-04-01 65 2013-04-02 45 สิ่งที่ฉันต้องการจะทำคือรวมระยะเวลาและนับความแตกต่างในเวลาเดียวกัน แต่ฉันไม่สามารถหาสิ่งที่เทียบเท่าสำหรับ count_distinct ได้: agg = group.aggregate({ 'duration': np.sum, …
97 python  pandas 

2
อัปเดตค่าแถวที่ตรงตามเงื่อนไขในแพนด้า
สมมติว่าฉันมี dataframe ต่อไปนี้: เป็นวิธีที่มีประสิทธิภาพมากที่สุดในการปรับปรุงค่าของคอลัมน์อะไรสำเร็จและanother_featที่สตรีมเป็นจำนวน2 ? นี่มัน? for index, row in df.iterrows(): if df1.loc[index,'stream'] == 2: # do something UPDATE: จะทำอย่างไรถ้าฉันมีมากกว่า 100 คอลัมน์? ฉันไม่ต้องการตั้งชื่อคอลัมน์ที่ต้องการอัปเดตอย่างชัดเจน ฉันต้องการหารค่าของแต่ละคอลัมน์ด้วย 2 (ยกเว้นคอลัมน์สตรีม) เพื่อให้ชัดเจนว่าเป้าหมายของฉันคืออะไร: หารค่าทั้งหมดด้วย 2 แถวทั้งหมดที่มีสตรีม 2 แต่ไม่เปลี่ยนคอลัมน์สตรีม

11
ค้นหาดัชนีจำนวนเต็มของแถวด้วย NaN ในแพนด้าดาต้าเฟรม
ฉันมี DataFrame แพนด้าแบบนี้: a b 2011-01-01 00:00:00 1.883381 -0.416629 2011-01-01 01:00:00 0.149948 -1.782170 2011-01-01 02:00:00 -0.407604 0.314168 2011-01-01 03:00:00 1.452354 NaN 2011-01-01 04:00:00 -1.224869 -0.947457 2011-01-01 05:00:00 0.498326 0.070416 2011-01-01 06:00:00 0.401665 NaN 2011-01-01 07:00:00 -0.019766 0.533641 2011-01-01 08:00:00 -1.101303 -1.408561 2011-01-01 09:00:00 1.671795 -0.764629 มีวิธีที่มีประสิทธิภาพในการค้นหาดัชนี "จำนวนเต็ม" ของแถวด้วย NaN หรือไม่? …
96 python  pandas 

12
สมุดบันทึก Jupyter แสดงตารางแพนด้าสองตัวเคียงข้างกัน
ฉันมีดาต้าเฟรมของแพนด้าสองตัวและฉันต้องการแสดงในสมุดบันทึก Jupyter ทำสิ่งที่ชอบ: display(df1) display(df2) แสดงให้เห็นด้านล่าง: ฉันต้องการมีดาต้าเฟรมที่สองทางด้านขวาของอันแรก มีคำถามที่คล้ายกันแต่ดูเหมือนว่าจะมีคนพอใจกับการรวมเข้าด้วยกันในดาต้าเฟรมเดียวเพื่อแสดงความแตกต่างระหว่างกัน สิ่งนี้จะไม่ได้ผลสำหรับฉัน ในกรณีของฉันดาต้าเฟรมอาจแสดงถึงความแตกต่างอย่างสิ้นเชิง (องค์ประกอบที่เทียบไม่ได้) และขนาดของมันอาจแตกต่าง ดังนั้นเป้าหมายหลักของฉันคือการประหยัดพื้นที่

3
ฉันจะตัดช่องว่างออกจากส่วนหัว Pandas DataFrame ได้อย่างไร
ฉันกำลังแยกวิเคราะห์ข้อมูลจากไฟล์ Excel ที่มีช่องว่างพิเศษในส่วนหัวคอลัมน์บางส่วน เมื่อฉันตรวจสอบคอลัมน์ของดาต้าเฟรมที่เป็นผลลัพธ์df.columnsฉันจะเห็น: Index(['Year', 'Month ', 'Value']) ^ # Note the unwanted trailing space on 'Month ' ดังนั้นฉันไม่สามารถทำ: df["Month"] เพราะมันจะบอกฉันว่าไม่พบคอลัมน์ตามที่ฉันขอ "เดือน" ไม่ใช่ "เดือน" คำถามของฉันคือฉันจะดึงพื้นที่สีขาวที่ไม่ต้องการออกจากส่วนหัวของคอลัมน์ได้อย่างไร?

6
iterrows แพนด้ามีปัญหาด้านประสิทธิภาพหรือไม่?
ฉันสังเกตเห็นประสิทธิภาพที่แย่มากเมื่อใช้ iterrows จากแพนด้า นี่คือสิ่งที่เป็นประสบการณ์ของผู้อื่นหรือไม่? มันเฉพาะเจาะจงสำหรับ iterrows และควรหลีกเลี่ยงฟังก์ชั่นนี้สำหรับข้อมูลบางขนาด (ฉันกำลังทำงานกับ 2-3 ล้านแถว) การสนทนาเกี่ยวกับ GitHub นี้ทำให้ฉันเชื่อว่าเกิดจากการผสม dtypes ใน dataframe แต่ตัวอย่างง่ายๆด้านล่างแสดงให้เห็นว่ามีอยู่แม้จะใช้ dtype เดียว (float64) ใช้เวลา 36 วินาทีบนเครื่องของฉัน: import pandas as pd import numpy as np import time s1 = np.random.randn(2000000) s2 = np.random.randn(2000000) dfa = pd.DataFrame({'s1': s1, 's2': s2}) start = time.time() i=0 for …

11
วิธีการระเบิดรายการภายในเซลล์ Dataframe เป็นแถวแยกกัน
ฉันต้องการเปลี่ยนเซลล์แพนด้าที่มีรายการเป็นแถวสำหรับแต่ละค่าเหล่านั้น ดังนั้นใช้สิ่งนี้: หากฉันต้องการคลายแพ็กและซ้อนค่าในnearest_neighborsคอลัมน์เพื่อให้แต่ละค่าเป็นแถวภายในopponentดัชนีแต่ละรายการฉันจะทำอย่างไรดีที่สุด มีวิธีการของแพนด้าที่มีไว้สำหรับการดำเนินการเช่นนี้หรือไม่?

1
เอกสารเกี่ยวกับแท็ก 'Freq' ของ Pandas อยู่ที่ไหน [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ date_rangeฉันใหม่เพื่อนุ่นและกำลังพยายามที่จะใช้ ฉันเจอสิ่งดีๆทุกประเภทสำหรับfreqเช่นBMEและBMSฉันต้องการที่จะสามารถค้นหาสตริงที่เหมาะสมได้อย่างรวดเร็วเพื่อให้ได้สิ่งที่ฉันต้องการ เมื่อวานนี้ฉันพบตารางที่มีรูปแบบสวยงามอยู่ที่ไหนสักแห่งในเอกสาร แต่ชื่อของตารางนั้นผิดเพี้ยนมากจนฉันไม่สามารถใช้การค้นหาเพื่อค้นหาได้อีกในวันนี้

9
วิธีนำเข้าไฟล์ข้อความบน AWS S3 เข้าสู่แพนด้าโดยไม่ต้องเขียนลงดิสก์
ฉันมีไฟล์ข้อความที่บันทึกไว้ใน S3 ซึ่งเป็นตารางที่คั่นด้วยแท็บ ฉันต้องการโหลดเป็นแพนด้า แต่ไม่สามารถบันทึกได้ก่อนเนื่องจากฉันใช้งานบนเซิร์ฟเวอร์ heroku นี่คือสิ่งที่ฉันมีจนถึงตอนนี้ import io import boto3 import os import pandas as pd os.environ["AWS_ACCESS_KEY_ID"] = "xxxxxxxx" os.environ["AWS_SECRET_ACCESS_KEY"] = "xxxxxxxx" s3_client = boto3.client('s3') response = s3_client.get_object(Bucket="my_bucket",Key="filename.txt") file = response["Body"] pd.read_csv(file, header=14, delimiter="\t", low_memory=False) ข้อผิดพลาดคือ OSError: Expected file path name or file-like object, got <class 'bytes'> type ฉันจะแปลงร่างตอบสนองเป็นแพนด้ารูปแบบจะยอมรับได้อย่างไร …

9
Python Pandas เทียบเท่าใน JavaScript
ด้วยตัวอย่าง CSV นี้: Source,col1,col2,col3 foo,1,2,3 bar,3,4,5 วิธีมาตรฐานที่ฉันใช้ Pandas คือ: แยกวิเคราะห์ CSV เลือกคอลัมน์ลงในกรอบข้อมูล ( col1และcol3) ประมวลผลคอลัมน์ (เช่นประเมินค่าของ col1และcol3) มีไลบรารี JavaScript ที่เหมือนกับ Pandas หรือไม่?


6
การทำให้เส้นตารางแนวตั้งปรากฏในพล็อตเส้นใน matplotlib
ฉันต้องการรับเส้นกริดทั้งแนวนอนและแนวตั้งบนพล็อตของฉัน แต่มีเพียงเส้นกริดแนวนอนเท่านั้นที่ปรากฏตามค่าเริ่มต้น ฉันใช้pandas.DataFrameจากแบบสอบถาม sql ใน python เพื่อสร้างพล็อตเส้นที่มีวันที่บนแกน x ฉันไม่แน่ใจว่าเหตุใดจึงไม่ปรากฏในวันที่และฉันพยายามค้นหาคำตอบสำหรับสิ่งนี้ แต่ไม่พบ สิ่งที่ฉันใช้ในการพล็อตกราฟคือโค้ดง่ายๆด้านล่าง data.plot() grid('on') ข้อมูลคือ DataFrame ซึ่งมีวันที่และข้อมูลจากแบบสอบถาม sql ฉันได้ลองเพิ่มโค้ดด้านล่างแล้ว แต่ฉันยังคงได้ผลลัพธ์เดียวกันโดยไม่มีเส้นตารางแนวตั้ง ax = plt.axes() ax.yaxis.grid() # horizontal lines ax.xaxis.grid() # vertical lines ข้อเสนอแนะใด ๆ ?

5
การเพิ่มป้ายกำกับค่าบนแผนภูมิแท่ง matplotlib
ฉันติดอยู่กับบางสิ่งที่รู้สึกว่าน่าจะค่อนข้างง่าย โค้ดที่ฉันนำมาด้านล่างเป็นตัวอย่างจากโครงการขนาดใหญ่ที่ฉันกำลังทำอยู่ ฉันไม่เห็นเหตุผลที่จะโพสต์รายละเอียดทั้งหมดดังนั้นโปรดยอมรับโครงสร้างข้อมูลที่ฉันนำมาตามที่เป็นอยู่ โดยพื้นฐานแล้วฉันกำลังสร้างแผนภูมิแท่งและฉันสามารถหาวิธีเพิ่มป้ายกำกับค่าบนแท่งได้ (ตรงกลางแท่งหรือด้านบน) ดูตัวอย่างในเว็บ แต่ไม่ประสบความสำเร็จในการติดตั้งโค้ดของตัวเอง ฉันเชื่อว่าวิธีแก้ปัญหานั้นใช้ 'text' หรือ 'annotate' แต่ฉัน: a) ไม่รู้ว่าจะใช้อันไหน (และโดยทั่วไปแล้วยังไม่ทราบว่าจะใช้เมื่อใด) b) มองไม่เห็นเพื่อนำเสนอป้ายกำกับค่า ขอขอบคุณสำหรับความช่วยเหลือของคุณรหัสของฉันด้านล่าง ขอบคุณล่วงหน้า! import numpy as np import pandas as pd import matplotlib.pyplot as plt pd.set_option('display.mpl_style', 'default') %matplotlib inline # Bring some raw data. frequencies = [6, 16, 75, 160, 244, 260, 145, 73, …

10
การลบหลายคอลัมน์ตามชื่อคอลัมน์ใน Pandas
ฉันมีข้อมูลบางส่วนและเมื่อฉันนำเข้าฉันจะได้รับคอลัมน์ที่ไม่จำเป็นต่อไปนี้ฉันกำลังมองหาวิธีง่ายๆในการลบสิ่งเหล่านี้ทั้งหมด 'Unnamed: 24', 'Unnamed: 25', 'Unnamed: 26', 'Unnamed: 27', 'Unnamed: 28', 'Unnamed: 29', 'Unnamed: 30', 'Unnamed: 31', 'Unnamed: 32', 'Unnamed: 33', 'Unnamed: 34', 'Unnamed: 35', 'Unnamed: 36', 'Unnamed: 37', 'Unnamed: 38', 'Unnamed: 39', 'Unnamed: 40', 'Unnamed: 41', 'Unnamed: 42', 'Unnamed: 43', 'Unnamed: 44', 'Unnamed: 45', 'Unnamed: 46', 'Unnamed: 47', 'Unnamed: …
95 python  pandas 

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