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

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

11
การทำความเข้าใจ inplace = True
ในpandasไลบรารีหลายครั้งมีตัวเลือกในการเปลี่ยนวัตถุ inplace เช่นด้วยคำสั่งต่อไปนี้ ... df.dropna(axis='index', how='all', inplace=True) ผมอยากรู้สิ่งที่จะถูกส่งกลับมาเช่นเดียวกับวิธีวัตถุที่มีการจัดการเมื่อถูกส่งผ่านไปเทียบกับเมื่อinplace=Trueinplace=False การดำเนินการทั้งหมดมีการแก้ไขselfเมื่อinplace=Trueใด และเมื่อไหร่inplace=Falseที่วัตถุใหม่จะถูกสร้างขึ้นทันทีเช่นnew_df = selfแล้วnew_dfจะถูกส่งคืน?
109 python  pandas  in-place 

5
จะแทนที่ข้อความในคอลัมน์ของ Pandas dataframe ได้อย่างไร?
ฉันมีคอลัมน์ในดาต้าเฟรมของฉันดังนี้: range "(2,30)" "(50,290)" "(400,1000)" ... และฉันต้องการแทนที่,เครื่องหมายจุลภาคด้วย-เส้นประ ฉันกำลังใช้วิธีนี้ แต่ไม่มีอะไรเปลี่ยนแปลง org_info_exc['range'].replace(',', '-', inplace=True) ใครสามารถช่วย?

5
การแปลงคอลัมน์ภายในดาต้าเฟรมแพนด้าจาก int เป็นสตริง
ฉันมีดาต้าเฟรมในแพนด้าที่มีคอลัมน์ข้อมูล int และ str ผสมกัน ฉันต้องการต่อคอลัมน์ภายในดาต้าเฟรมก่อน ในการทำเช่นนั้นฉันต้องแปลงintคอลัมน์เป็นstr. ฉันได้พยายามทำดังนี้: mtrx['X.3'] = mtrx.to_string(columns = ['X.3']) หรือ mtrx['X.3'] = mtrx['X.3'].astype(str) แต่ในทั้งสองกรณีมันใช้งานไม่ได้และฉันได้รับข้อผิดพลาดว่า "ไม่สามารถเชื่อมต่อวัตถุ 'str' และ 'int' ได้ การเชื่อมสองstrคอลัมน์เข้าด้วยกันทำงานได้ดีอย่างสมบูรณ์
108 python  string  pandas  dataframe  int 

10
ฉันจะแปลงวันที่ในเฟรมข้อมูล Pandas เป็นประเภทข้อมูล 'วันที่' ได้อย่างไร
ฉันมีกรอบข้อมูล Pandas หนึ่งในคอลัมน์มีสตริงวันที่ในรูปแบบ YYYY-MM-DD สำหรับเช่น '2013-10-28' ในขณะที่ของคอลัมน์dtypeobject ฉันจะแปลงค่าคอลัมน์เป็นรูปแบบวันที่ของ Pandas ได้อย่างไร
108 python  date  pandas 

6
การสร้างกรอบข้อมูลแพนด้าที่เติมเป็นศูนย์
อะไรคือวิธีที่ดีที่สุดในการสร้างกรอบข้อมูลแพนด้าที่ไม่มีค่าเป็นศูนย์ในขนาดที่กำหนด ฉันได้ใช้: zero_data = np.zeros(shape=(len(data),len(feature_list))) d = pd.DataFrame(zero_data, columns=feature_list) มีวิธีที่ดีกว่านี้ไหม
108 python  pandas  dataframe 

4
Numpy isnan () ล้มเหลวในอาร์เรย์ของโฟลต (จากฐานข้อมูลแพนด้าใช้)
ฉันมีอาร์เรย์ของโฟลต (ตัวเลขปกติ, nans บางตัว) ที่ออกมาจากการใช้กับดาต้าเฟรมของแพนด้า ด้วยเหตุผลบางประการ numpy.isnan ล้มเหลวในอาร์เรย์นี้อย่างไรก็ตามตามที่แสดงด้านล่างแต่ละองค์ประกอบเป็นแบบลอย numpy.isnan ทำงานอย่างถูกต้องในแต่ละองค์ประกอบประเภทของตัวแปรคืออาร์เรย์จำนวนนับ เกิดอะไรขึ้น?! set([type(x) for x in tester]) Out[59]: {float} tester Out[60]: array([-0.7000000000000001, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, …
108 python  arrays  numpy  pandas 

4
dtype ('O') ในหมีแพนด้าคืออะไร?
ฉันมีดาต้าเฟรมเป็นหมีแพนด้าและฉันกำลังพยายามหาว่าค่าของมันคืออะไร ฉันไม่แน่ใจว่าประเภทของคอลัมน์'Test'คืออะไร อย่างไรก็ตามเมื่อฉันวิ่งmyFrame['Test'].dtypeฉันได้รับ; dtype('O') สิ่งนี้หมายความว่า?

4
เลือกแถวหมีแพนด้าตามดัชนีรายการ
ฉันมี dataframe df: 20060930 10.103 NaN 10.103 7.981 20061231 15.915 NaN 15.915 12.686 20070331 3.196 NaN 3.196 2.710 20070630 7.907 NaN 7.907 6.459 จากนั้นฉันต้องการเลือกแถวที่มีหมายเลขลำดับที่ระบุไว้ในรายการสมมติว่านี่คือ [1,3] จากนั้นซ้าย: 20061231 15.915 NaN 15.915 12.686 20070630 7.907 NaN 7.907 6.459 อย่างไรหรือฟังก์ชั่นอะไรได้บ้าง?
107 python  pandas 

10
แปลงข้อมูลหมวดหมู่ในดาต้าเฟรมแพนด้า
ฉันมีดาต้าเฟรมที่มีข้อมูลประเภทนี้ (มีคอลัมน์มากเกินไป): col1 int64 col2 int64 col3 category col4 category col5 category คอลัมน์มีลักษณะดังนี้: Name: col3, dtype: category Categories (8, object): [B, C, E, G, H, N, S, W] ฉันต้องการแปลงค่าทั้งหมดในคอลัมน์เป็นจำนวนเต็มดังนี้: [1, 2, 3, 4, 5, 6, 7, 8] ฉันแก้ไขสิ่งนี้สำหรับหนึ่งคอลัมน์โดยสิ่งนี้: dataframe['c'] = pandas.Categorical.from_array(dataframe.col3).codes ตอนนี้ฉันมีสองคอลัมน์ในดาต้าเฟรม - เก่าcol3และใหม่cและจำเป็นต้องทิ้งคอลัมน์เก่า นั่นเป็นการปฏิบัติที่ไม่ดี มันใช้งานได้ แต่ใน dataframe ของฉันมีหลายคอลัมน์และฉันไม่ต้องการทำด้วยตนเอง pythonic …
107 python  pandas 

1
วิธีอ่านสองสามบรรทัดแรกสำหรับแพนด้าดาต้าเฟรม
มีวิธีในตัวในการใช้read_csvเพื่ออ่านเฉพาะnบรรทัดแรกของไฟล์โดยไม่ทราบความยาวของบรรทัดก่อนเวลาหรือไม่? ฉันมีไฟล์ขนาดใหญ่ที่ใช้เวลาอ่านนานและบางครั้งก็ต้องการใช้ครั้งแรกพูดว่า 20 บรรทัดเพื่อรับตัวอย่างไฟล์ (และไม่ต้องการโหลดไฟล์แบบเต็มและใช้หัวของมัน) ถ้าฉันรู้จำนวนบรรทัดทั้งหมดฉันสามารถทำบางอย่างเช่นfooter_lines = total_lines - nและส่งต่อไปยังskipfooterคีย์เวิร์ด arg วิธีแก้ปัญหาปัจจุบันของฉันคือจับnบรรทัดแรกด้วยตนเองด้วย python และ StringIO เพื่อแพนด้า: import pandas as pd from StringIO import StringIO n = 20 with open('big_file.csv', 'r') as f: head = ''.join(f.readlines(n)) df = pd.read_csv(StringIO(head)) มันไม่ได้แย่ขนาดนั้น แต่มีวิธี 'แพนด้า' (?) ที่กระชับกว่านี้ในการใช้คีย์เวิร์ดหรืออะไร?
107 python  pandas  csv  dataframe 

3
นำเข้าคอลัมน์ดาต้าเฟรมของแพนด้าเป็นสตริงไม่ใช่ int
ฉันต้องการนำเข้า csv ต่อไปนี้เป็นสตริงที่ไม่ใช่ int64 Pandas read_csv จะแปลงเป็น int64 โดยอัตโนมัติ แต่ฉันต้องการคอลัมน์นี้เป็นสตริง ID 00013007854817840016671868 00013007854817840016749251 00013007854817840016754630 00013007854817840016781876 00013007854817840017028824 00013007854817840017963235 00013007854817840018860166 df = read_csv('sample.csv') df.ID >> 0 -9223372036854775808 1 -9223372036854775808 2 -9223372036854775808 3 -9223372036854775808 4 -9223372036854775808 5 -9223372036854775808 6 -9223372036854775808 Name: ID น่าเสียดายที่การใช้ตัวแปลงให้ผลลัพธ์เดียวกัน df = read_csv('sample.csv', converters={'ID': str}) df.ID >> 0 -9223372036854775808 1 …

8
เหตุใดการติดตั้ง Pandas บน Alpine Linux จึงใช้เวลานาน
ฉันสังเกตเห็นว่าการติดตั้ง Pandas และ Numpy (เป็นการพึ่งพา) ในคอนเทนเนอร์ Docker โดยใช้ OS Alpine กับ CentOS หรือ Debian ใช้เวลานานกว่ามาก ฉันสร้างการทดสอบเล็กน้อยด้านล่างเพื่อแสดงให้เห็นถึงความแตกต่างของเวลา นอกเหนือจากเวลาไม่กี่วินาทีที่ Alpine ใช้ในการอัปเดตและดาวน์โหลด build dependencies เพื่อติดตั้ง Pandas และ Numpy เหตุใด setup.py จึงใช้เวลามากกว่าการติดตั้ง Debian ประมาณ 70 เท่า มีวิธีใดในการเร่งความเร็วการติดตั้งโดยใช้ Alpine เป็นภาพฐานหรือมีภาพฐานอื่นที่มีขนาดเทียบเท่ากับ Alpine ที่ดีกว่าสำหรับใช้กับแพ็คเกจเช่น Pandas และ Numpy Dockerfile.debian FROM python:3.6.4-slim-jessie RUN pip install pandas สร้างภาพ Debian ด้วย …
107 pandas  numpy  docker  alpine 

6
ฉันจะรวมสองกรอบข้อมูลได้อย่างไร
ฉันใช้เฟรมข้อมูล Pandas Dฉันมีกรอบข้อมูลเบื้องต้นพูด ฉันดึงข้อมูลสองเฟรมออกมาดังนี้: A = D[D.label == k] B = D[D.label != k] จากนั้นฉันเปลี่ยนป้ายกำกับในAและB A.label = 1 B.label = -1 ฉันต้องการรวม A และ B เพื่อที่ฉันจะได้เป็นกรอบข้อมูลเดียวบางอย่างเช่นการรวมกัน ลำดับของข้อมูลไม่สำคัญ อย่างไรก็ตามเมื่อเราสุ่มตัวอย่าง A และ B จาก D พวกมันจะคงดัชนีไว้จาก D
106 python  pandas 

8
นุ่นสามารถวางแผนฮิสโตแกรมของวันที่ได้หรือไม่?
ฉันใช้ซีรี่ส์ของฉันและบังคับให้เป็นคอลัมน์วันที่และเวลาของ dtype = datetime64[ns](แม้ว่าจะต้องการความละเอียดวันเท่านั้น ... ไม่แน่ใจว่าจะเปลี่ยนอย่างไร) import pandas as pd df = pd.read_csv('somefile.csv') column = df['date'] column = pd.to_datetime(column, coerce=True) แต่การวางแผนไม่ได้ผล: ipdb> column.plot(kind='hist') *** TypeError: ufunc add cannot use operands with types dtype('<M8[ns]') and dtype('float64') ฉันต้องการที่จะพล็อตโตแกรมว่าเป็นเพียงแค่แสดงให้เห็นว่านับวันโดยสัปดาห์เดือนหรือปี มีวิธีทำในpandas?

2
วัตถุ "DataFrame" ไม่มีแอตทริบิวต์ "sort"
ฉันประสบปัญหาที่นี่ในแพ็คเกจ python ของฉันฉันติดตั้ง numpy แล้ว แต่ฉันยังคงมีข้อผิดพลาดนี้ วัตถุ 'DataFrame' ไม่มีแอตทริบิวต์ 'sort' ใครก็ได้ช่วยคิดหน่อย .. นี่คือรหัสของฉัน: final.loc[-1] =['', 'P','Actual'] final.index = final.index + 1 # shifting index final = final.sort() final.columns=[final.columns,final.iloc[0]] final = final.iloc[1:].reset_index(drop=True) final.columns.names = (None, None)

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