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

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

7
วิธีเปลี่ยนคอลัมน์ใน Pandas DataFrame
ฉันต้องการเปลี่ยนคอลัมน์ในแพนด้าDataFrameแต่ฉันไม่สามารถหาวิธีการทำได้จากเอกสารโดยไม่ต้องเขียน DF ใหม่ทั้งหมด มีใครรู้วิธีทำไหม ดาต้าเฟรม: ## x1 x2 ##0 206 214 ##1 226 234 ##2 245 253 ##3 265 272 ##4 283 291 ผลลัพธ์ที่ต้องการ: ## x1 x2 ##0 206 nan ##1 226 214 ##2 245 234 ##3 265 253 ##4 283 272 ##5 nan 291
102 python  pandas  dataframe 


4
เพิ่มคอลัมน์ที่มีจำนวนวันระหว่างวันที่ใน DataFrame แพนด้า
ฉันต้องการลบวันที่ใน 'A' จากวันที่ใน 'B' และเพิ่มคอลัมน์ใหม่ที่มีความแตกต่าง df A B one 2014-01-01 2014-02-28 two 2014-02-03 2014-03-01 ฉันได้ลองทำสิ่งต่อไปนี้แล้ว แต่ได้รับข้อผิดพลาดเมื่อฉันพยายามรวมสิ่งนี้ในการวนซ้ำ ... import datetime date1=df['A'][0] date2=df['B'][0] mdate1 = datetime.datetime.strptime(date1, "%Y-%m-%d").date() rdate1 = datetime.datetime.strptime(date2, "%Y-%m-%d").date() delta = (mdate1 - rdate1).days print delta ฉันควรทำอย่างไรดี?


4
สตริงใน DataFrame แต่ dtype เป็นวัตถุ
เหตุใดนุ่นจึงบอกฉันว่าฉันมีวัตถุแม้ว่าทุกรายการในคอลัมน์ที่เลือกจะเป็นสตริง - แม้ว่าจะมีการแปลงอย่างชัดเจนก็ตาม นี่คือ DataFrame ของฉัน: <class 'pandas.core.frame.DataFrame'> Int64Index: 56992 entries, 0 to 56991 Data columns (total 7 columns): id 56992 non-null values attr1 56992 non-null values attr2 56992 non-null values attr3 56992 non-null values attr4 56992 non-null values attr5 56992 non-null values attr6 56992 non-null values dtypes: int64(2), object(5) …
101 python  pandas  numpy  types  series 

2
Pandas: สร้างคอลัมน์ใหม่สองคอลัมน์ในดาต้าเฟรมด้วยค่าที่คำนวณจากคอลัมน์ที่มีอยู่แล้ว
ฉันกำลังทำงานกับไลบรารีแพนด้าและต้องการเพิ่มคอลัมน์ใหม่สองคอลัมน์ในดาต้าเฟรมdfมี n คอลัมน์ (n> 0) คอลัมน์ใหม่เหล่านี้เป็นผลมาจากการประยุกต์ใช้ฟังก์ชันกับคอลัมน์ใดคอลัมน์หนึ่งในดาต้าเฟรม ฟังก์ชั่นที่จะใช้มีดังนี้: def calculate(x): ...operate... return z, y วิธีหนึ่งในการสร้างคอลัมน์ใหม่สำหรับฟังก์ชันที่ส่งคืนเฉพาะค่าคือ: df['new_col']) = df['column_A'].map(a_function) ดังนั้นสิ่งที่ฉันต้องการและพยายามอย่างไม่ประสบความสำเร็จ (*) ก็คือ: (df['new_col_zetas'], df['new_col_ys']) = df['column_A'].map(calculate) วิธีที่ดีที่สุดในการทำสิ่งนี้ให้สำเร็จคืออะไร? ฉันสแกนเอกสารโดยไม่มีเงื่อนงำ ** df['column_A'].map(calculate)ส่งคืนชุดหมีแพนด้าแต่ละรายการประกอบด้วยทูเพิล z, y และการพยายามกำหนดสิ่งนี้ให้กับคอลัมน์ดาต้าเฟรมสองคอลัมน์จะทำให้เกิด ValueError *
100 python  pandas 

4
การสร้างคอลัมน์ใหม่ตามเงื่อนไข if-elif-else
ฉันมี DataFrame df: A B a 2 2 b 3 1 c 1 3 ฉันต้องการสร้างคอลัมน์ใหม่ตามเกณฑ์ต่อไปนี้: ถ้าแถว A == B: 0 ถ้าแถวA > B: 1 ถ้าแถว A < B: -1 ดังนั้นตารางด้านบนควรเป็น: A B C a 2 2 0 b 3 1 1 c 1 3 -1 สำหรับif elseกรณีทั่วไปที่ฉันทำnp.where(df.A > df.B, 1, …

6
การนับค่าที่ไม่ซ้ำกันในคอลัมน์ในดาต้าเฟรมแพนด้าเช่นใน Qlik?
ถ้าฉันมีโต๊ะแบบนี้: df = pd.DataFrame({ 'hID': [101, 102, 103, 101, 102, 104, 105, 101], 'dID': [10, 11, 12, 10, 11, 10, 12, 10], 'uID': ['James', 'Henry', 'Abe', 'James', 'Henry', 'Brian', 'Claude', 'James'], 'mID': ['A', 'B', 'A', 'B', 'A', 'A', 'A', 'C'] }) ฉันสามารถทำได้count(distinct hID)ใน Qlik เพื่อให้ได้จำนวน 5 สำหรับ hID ที่ไม่ซ้ำกัน ฉันจะทำสิ่งนั้นใน …

12
จะนำเข้าข้อมูลจาก mongodb ไปยังแพนด้าได้อย่างไร?
ฉันมีข้อมูลจำนวนมากในคอลเล็กชันใน mongodb ซึ่งฉันต้องวิเคราะห์ ฉันจะนำเข้าข้อมูลนั้นไปยังแพนด้าได้อย่างไร ฉันยังใหม่กับแพนด้าและมึนงง แก้ไข: คอลเลกชัน mongodb มีค่าเซ็นเซอร์ที่ติดแท็กวันที่และเวลา ค่าเซ็นเซอร์เป็นประเภทข้อมูลลอย ข้อมูลตัวอย่าง: { "_cls" : "SensorReport", "_id" : ObjectId("515a963b78f6a035d9fa531b"), "_types" : [ "SensorReport" ], "Readings" : [ { "a" : 0.958069536790466, "_types" : [ "Reading" ], "ReadingUpdatedDate" : ISODate("2013-04-02T08:26:35.297Z"), "b" : 6.296118156595, "_cls" : "Reading" }, { "a" : 0.95574014778624, "_types" …

6
วิธีหมุนป้ายติ๊กแกน x ใน Pandas barplot
ด้วยรหัสต่อไปนี้: import matplotlib matplotlib.style.use('ggplot') import matplotlib.pyplot as plt import pandas as pd df = pd.DataFrame({ 'celltype':["foo","bar","qux","woz"], 's1':[5,9,1,7], 's2':[12,90,13,87]}) df = df[["celltype","s1","s2"]] df.set_index(["celltype"],inplace=True) df.plot(kind='bar',alpha=0.75) plt.xlabel("") ฉันสร้างพล็อตนี้: ฉันจะหมุนป้ายขีดแกน x เป็น 0 องศาได้อย่างไร ฉันพยายามเพิ่มสิ่งนี้ แต่ไม่ได้ผล: plt.set_xticklabels(df.index,rotation=90)

6
ข้ามแถวระหว่างการนำเข้า csv แพนด้า
ฉันกำลังพยายามนำเข้าไฟล์. csv โดยใช้pandas.read_csv()แต่ฉันไม่ต้องการนำเข้าแถวที่ 2 ของไฟล์ข้อมูล (แถวที่มีดัชนี = 1 สำหรับการสร้างดัชนี 0) ฉันไม่เห็นวิธีที่จะไม่นำเข้าเนื่องจากอาร์กิวเมนต์ที่ใช้กับคำสั่งนั้นดูคลุมเครือ: จากเว็บไซต์แพนด้า: skiprows : list-like หรือ integer หมายเลขแถวที่จะข้าม (ดัชนี 0) หรือจำนวนแถวที่จะข้าม (int) ที่จุดเริ่มต้นของไฟล์ " ถ้าฉันใส่skiprows=1อาร์กิวเมนต์จะรู้ได้อย่างไรว่าจะข้ามแถวแรกหรือข้ามแถวด้วยดัชนี 1
99 python  csv  pandas 

8
แปลง DateTimeIndex ที่รับรู้ของแพนด้าเป็นการประทับเวลาที่ไร้เดียงสา แต่ในบางเขตเวลา
คุณสามารถใช้ฟังก์ชันtz_localizeเพื่อทำให้ Timestamp หรือ DateTimeIndex ทราบเขตเวลา แต่คุณจะทำสิ่งที่ตรงกันข้ามได้อย่างไร: คุณจะแปลง Timestamp ที่รับรู้เขตเวลาเป็นแบบไร้เดียงสาได้อย่างไรในขณะที่รักษาเขตเวลาไว้ ตัวอย่าง: In [82]: t = pd.date_range(start="2013-05-18 12:00:00", periods=10, freq='s', tz="Europe/Brussels") In [83]: t Out[83]: <class 'pandas.tseries.index.DatetimeIndex'> [2013-05-18 12:00:00, ..., 2013-05-18 12:00:09] Length: 10, Freq: S, Timezone: Europe/Brussels ฉันสามารถลบเขตเวลาได้โดยตั้งค่าเป็นไม่มี แต่ผลลัพธ์จะถูกแปลงเป็น UTC (12 นาฬิกากลายเป็น 10): In [86]: t.tz = None In [87]: t …
99 python  pandas 

5
แทนที่ None ด้วย NaN ในดาต้าเฟรมของแพนด้า
ฉันมีโต๊ะx: website 0 http://www.google.com/ 1 http://www.yahoo.com 2 None ฉันต้องการแทนที่ python None ด้วยแพนด้า NaN ฉันเหนื่อย: x.replace(to_replace=None, value=np.nan) แต่ฉันได้รับ: TypeError: 'regex' must be a string or a compiled regular expression or a list or dict of strings or regular expressions, you passed a 'bool' ฉันควรจะทำอย่างไร

10
GroupBy แพนด้า DataFrame และเลือกค่าที่พบบ่อยที่สุด
ฉันมีกรอบข้อมูลที่มีคอลัมน์สตริงสามคอลัมน์ ฉันรู้ว่าค่าเดียวในคอลัมน์ที่ 3 ใช้ได้กับทุกค่าผสมของสองค่าแรก ในการล้างข้อมูลฉันต้องจัดกลุ่มตามกรอบข้อมูลตามสองคอลัมน์แรกและเลือกค่าที่พบบ่อยที่สุดของคอลัมน์ที่สามสำหรับแต่ละชุดค่าผสม รหัสของฉัน: import pandas as pd from scipy import stats source = pd.DataFrame({'Country' : ['USA', 'USA', 'Russia','USA'], 'City' : ['New-York', 'New-York', 'Sankt-Petersburg', 'New-York'], 'Short name' : ['NY','New','Spb','NY']}) print source.groupby(['Country','City']).agg(lambda x: stats.mode(x['Short name'])[0]) บรรทัดสุดท้ายของโค้ดใช้ไม่ได้มันขึ้นว่า "Key error" Short name "" และถ้าฉันพยายามจัดกลุ่มตามเมืองเท่านั้นฉันก็จะได้รับ AssertionError ฉันจะแก้ไขอะไรได้บ้าง?

11
FutureWarning: การเปรียบเทียบองค์ประกอบล้มเหลว ส่งคืนสเกลาร์ แต่ในอนาคตจะทำการเปรียบเทียบตามองค์ประกอบ
ฉันใช้ Pandas 0.19.1บน Python 3 ฉันได้รับคำเตือนเกี่ยวกับบรรทัดของโค้ดเหล่านี้ ฉันพยายามที่จะได้รับรายชื่อที่มีทั้งหมดจำนวนแถวที่สตริงเป็นปัจจุบันที่คอลัมน์PeterUnnamed: 5 df = pd.read_excel(xls_path) myRows = df[df['Unnamed: 5'] == 'Peter'].index.tolist() มันสร้างคำเตือน: "\Python36\lib\site-packages\pandas\core\ops.py:792: FutureWarning: elementwise comparison failed; returning scalar, but in the future will perform elementwise comparison result = getattr(x, name)(y)" FutureWarning นี้คืออะไรและฉันควรเพิกเฉยเพราะดูเหมือนจะใช้งานได้

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