একটি পান্ডাস ডেটা ফ্রেম অবজেক্টে সূচকটির নতুন সংজ্ঞা দেওয়া হচ্ছে


84

আমি প্যানডাস DataFrameঅবজেক্টটিকে আবার ইনডেক্স করার চেষ্টা করছি , যেমন,

From:
            a   b   c
        0   1   2   3
        1  10  11  12
        2  20  21  22

To :
           b   c
       1   2   3
      10  11  12
      20  21  22

আমি নীচে দেখানো হিসাবে এটি সম্পর্কে যাচ্ছি এবং ভুল উত্তর পাচ্ছি। এটি কিভাবে করা যায় সে সম্পর্কে কোনও সূত্র?

>>> col = ['a','b','c']
>>> data = DataFrame([[1,2,3],[10,11,12],[20,21,22]],columns=col)
>>> data
    a   b   c
0   1   2   3
1  10  11  12
2  20  21  22
>>> idx2 = data.a.values
>>> idx2
array([ 1, 10, 20], dtype=int64)
>>> data2 = DataFrame(data,index=idx2,columns=col[1:])
>>> data2
     b   c
1   11  12
10 NaN NaN
20 NaN NaN

কোন ধারণা কেন এই ঘটছে?


4
কারণ আপনি দ্বিতীয়টি তৈরি করতে 1 ম ডিএফ ব্যবহার করছেন, এটি কেবল সারিগুলি পাবে যেখানে idx2 ডেটা.ইন্ডেক্সকে ছেদ করে, অর্থাৎ। সারি 1
রুইডিসি

উত্তর:


189

আপনি কেবল set_indexপদ্ধতিটি ব্যবহার করেন না কেন ?

In : col = ['a','b','c']

In : data = DataFrame([[1,2,3],[10,11,12],[20,21,22]],columns=col)

In : data
Out:
    a   b   c
0   1   2   3
1  10  11  12
2  20  21  22

In : data2 = data.set_index('a')

In : data2
Out:
     b   c
a
1    2   3
10  11  12
20  21  22

17
মূল উদাহরণ হিসাবে সূচকের নামটি সরিয়ে ফেলতে: data2.index.name = কিছুই নেই
ড্যানিয়েল

5

আপনি যদি সূচকে 'ক' না চান

ভিতরে :

col = ['a','b','c']

data = DataFrame([[1,2,3],[10,11,12],[20,21,22]],columns=col)

data

আউট:

    a   b   c
0   1   2   3
1  10  11  12
2  20  21  22

ভিতরে :

data2 = data.set_index('a')

আউট:

     b   c
a
1    2   3
10  11  12
20  21  22

ভিতরে :

data2.index.name = None

আউট:

     b   c
 1   2   3
10  11  12
20  21  22

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