পান্ডায় ডেটাফ্রেমের প্রথম তিনটি সারি মুছুন


177

পান্ডায় ডেটাফ্রেমের প্রথম তিনটি সারি আমার মুছতে হবে।

আমি জানি df.ix[:-1]শেষ সারিটি সরিয়ে ফেলতে হবে, তবে আমি প্রথম এন সারিগুলি কীভাবে সরিয়ে ফেলব তা আমি বুঝতে পারি না।


Read_csv জন্য / read_html আপনি যেমন ব্যবহার করতে পারেন header=3কন্সট্রাকটর আমার যুক্তি, যা হেডার সারি হিসাবে যে সারি সেট হবে: stackoverflow.com/a/51822697/191246
ccpizza

উত্তর:


262

ব্যবহার iloc:

df = df.iloc[3:]

প্রথম তিনটি সারি ছাড়াই আপনাকে একটি নতুন ডিএফ দেবে।


1
এটি কি মূল প্রশ্নে প্রথম 3 টি সারি পরিবর্তে প্রথম 4 টি সারি সরিয়ে দেয় না?
ট্যাগোমা

6
না, তা হয় না। স্লাইসের শুরু অবস্থান সর্বদা অন্তর্ভুক্ত থাকে।
বিডিআমতে

এটিকে কীভাবে করা যায় তা কেউ জানতে পারে groupby()? এটি কাজ করে তবে সূচীতে সদৃশ কলামগুলি ফেরত দেয়df=pd.DataFrame({'v':np.arange(10).tolist()*2,'g':['a']*10+['b']*10});df.groupby('g').apply(lambda x: x.iloc[3:])
সিটিএনরম্যান

সুতরাং আপনি যদি সারি 3 থেকে সারি 9 থেকে মুছতে চান, উদাহরণস্বরূপ, আপনি এটি কীভাবে করবেন? df=df.iloc[3:9]?
এমকে

1
@ এমকে যদি এই পদ্ধতির ব্যবহার করে থাকেন তবে আপনি এটির সাথে মিলিয়ে এটি ব্যবহার করতে পারেন pd.concat()। কিছু একটা df2 = pd.concat([df.iloc[:3],df.iloc[10:]]),।
বিডিআমান্তে

100

আমি মনে করি এটি করার আরও সুস্পষ্ট উপায় হ'ল ড্রপ ব্যবহার করা।

বাক্য গঠনটি হ'ল:

df.drop(label)

এবং @ টিএম এবং @ চ্যামজি দ্বারা চিহ্নিত হিসাবে, এটি যথাস্থানে করা যেতে পারে:

df.drop(label, inplace=True)

এটি প্রয়োগের একটি উপায় হতে পারে:

df.drop(df.index[:3], inplace=True)

এবং অন্য "স্থানে" ব্যবহার করুন:

df.drop(df.head(3).index, inplace=True)

5
dropএমনকি স্থানে গণনা করা যেতে পারে (অতিরিক্ত নিয়োগ ছাড়াই)। আরও দ্রুত এবং সহজ!
টিম

1
টিমের ধারণাটি প্রসারিত করতে উদাহরণ:df.drop(label, inplace=True)
চ্যাম্প

সূচক 0 এর কারণে, আমি বিশ্বাস করি বাস্তবায়ন পরামর্শটি 4 টি সারি মুছে ফেলবে।
ড্যানিয়েল মরগান

1
@ ড্যানিয়েলমোরগান অজগর রেঞ্জ অর্ধেক খোলা থাকায় এটি তেমন নয়। তা কেন, অন্য প্রশ্ন। দেখুন stackoverflow.com/questions/4504662/... বা quora.com/...
drexiya

2
@tim অনুযায়ী এই , inplaceঅপারেশন না দ্রুততর হয়। এছাড়াও, সহজ মতামত একটি বিষয়: কোড inplaceপরামিতি না থাকে যখন আমি পড়তে সহজ মনে করি ।
টোটো_টিকো


6

আপনি পাইথন স্লাইসিং ব্যবহার করতে পারেন তবে নোট করুন যে এটি স্থান নেই।

In [15]: import pandas as pd
In [16]: import numpy as np
In [17]: df = pd.DataFrame(np.random.random((5,2)))
In [18]: df
Out[18]:
          0         1
0  0.294077  0.229471
1  0.949007  0.790340
2  0.039961  0.720277
3  0.401468  0.803777
4  0.539951  0.763267

In [19]: df[3:]
Out[19]:
          0         1
3  0.401468  0.803777
4  0.539951  0.763267

জায়গায় জায়গায় মানে কি না pandas?
cryanbhu

5
df.drop(df.index[[0,2]])

পান্ডা শূন্য ভিত্তিক সংখ্যায়ন ব্যবহার করে, সুতরাং 0 প্রথম সারিতে, 1 দ্বিতীয় সারিতে এবং 2 তৃতীয় সারিতে।


4

একটি সহজ উপায় হ'ল প্রথম এন সারিগুলি সরাতে লেজ (-n) ব্যবহার করা

df=df.tail(-3)


0

ইনপ0 = পিডি.ড্রেড_সিএসভি ("ব্যাঙ্ক_মার্কেটিং_পুষ্টিত_ভ1 সিএসভি", স্কিপ্রো = ২)

বা আপনি যদি বিদ্যমান ডাটাফ্রেমে করতে চান তবে

কেবল নিম্নলিখিত আদেশটি করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.