আমি কীভাবে সমস্ত ছোট হাতের প্যান্ডাস ডেটাফ্রেম কলাম শিরোনাম তৈরি করতে পারি?


102

আমি আমার প্যান্ডাস ডেটা ফ্রেম লোয়ার কেসে সমস্ত কলাম শিরোনাম তৈরি করতে চাই

উদাহরণ

যদি আমার থাকে:

data =

  country country isocode  year     XRAT          tcgdp
0  Canada             CAN  2001  1.54876   924909.44207
1  Canada             CAN  2002  1.56932   957299.91586
2  Canada             CAN  2003  1.40105  1016902.00180
....

আমি এই জাতীয় কিছু করে XRAT কে xrat এ পরিবর্তন করতে চাই:

data.headers.lowercase()

যাতে আমি পাই:

  country country isocode  year     xrat          tcgdp
0  Canada             CAN  2001  1.54876   924909.44207
1  Canada             CAN  2002  1.56932   957299.91586
2  Canada             CAN  2003  1.40105  1016902.00180
3  Canada             CAN  2004  1.30102  1096000.35500
....

সময়ের আগে প্রতিটি কলামের শিরোনামের নাম জানব না।


11
আরও সহজdf.columns = df.columns.str.lower()
অ্যালেক্স মন্টোয়া

উত্তর:


186

আপনি এটি এর মতো করতে পারেন:

data.columns = map(str.lower, data.columns)

বা

data.columns = [x.lower() for x in data.columns]

উদাহরণ:

>>> data = pd.DataFrame({'A':range(3), 'B':range(3,0,-1), 'C':list('abc')})
>>> data
   A  B  C
0  0  3  a
1  1  2  b
2  2  1  c
>>> data.columns = map(str.lower, data.columns)
>>> data
   a  b  c
0  0  3  a
1  1  2  b
2  2  1  c

7
মনে রাখবেন যে কমান (কলাম 1) == নিম্ন (কলাম 2) (যেমন, 'এ' এবং 'এ') কলামের নামগুলি সদৃশ করতে পারে। পরে কলামগুলি রেফারেন্স করার সময় এটি অনিচ্ছাকৃত পরিণতি হতে পারে। (যেমন ডেটা ['এ'] 'ক' নামের সমস্ত কলাম সহ সিরিজ নয়, একটি ডেটা ফ্রেম ফিরিয়ে দেবে)) উদাহরণ হিসাবে এই টুকরোটি
গ্রিসাইটিস

4
[x.lower() for x in data.columns]এর সমতুল্য:[x.lower() for x in data]
জোকি

আপনি এটিতে থাকাকালীন এটি ব্যবহার করা ভাল[x.lower().strip() for x in df0]
পাওয়েল ক্রানজবার্গ

@PawelKranzberg আপনি কিভাবে কম কলাম নামের কোন ধারণা আছেMultiIndex
curious_nustian

4
@ কুরিয়াস_নুস্টিয়ান - হ্যাঁ, উদাহরণস্বরূপ:df.index.names = [x.lower().strip() for x in df.index.names]
পাভেল ক্রানজবার্গ

103

আপনি সঙ্গে সহজে এটা করতে পারে str.lowerজন্য columns:

df.columns = df.columns.str.lower()

উদাহরণ:

In [63]: df
Out[63]: 
  country country isocode  year     XRAT         tcgdp
0  Canada             CAN  2001  1.54876  9.249094e+05
1  Canada             CAN  2002  1.56932  9.572999e+05
2  Canada             CAN  2003  1.40105  1.016902e+06

In [64]: df.columns = df.columns.str.lower()

In [65]: df
Out[65]: 
  country country isocode  year     xrat         tcgdp
0  Canada             CAN  2001  1.54876  9.249094e+05
1  Canada             CAN  2002  1.56932  9.572999e+05
2  Canada             CAN  2003  1.40105  1.016902e+06

22

আপনি যদি শৃঙ্খলাবদ্ধ পদ্ধতি কল ব্যবহার করে পুনরায় নামকরণ করতে চান তবে আপনি ব্যবহার করতে পারেন

data.rename(
    columns=unicode.lower
)

(পাইথন 2)

বা

data.rename(
    columns=str.lower
)

(পাইথন 3)


1
df.columns = df.columns.str.lower()

সবচেয়ে সহজ তবে কিছু শিরোনাম যদি সংখ্যাসূচক হয় তবে একটি ত্রুটি দেবে

আপনার যদি সংখ্যাযুক্ত শিরোনাম থাকে তবে এটি ব্যবহার করুন:

df.columns = [str(x).lower() for x in df.columns]

4
আমি অনুমান করি যে এটি লিখতে আরও সহজ df.columns.astype(str).str.lower()তবে সম্ভবত কিছুটা ভার্বোস।
আন্তন প্রোটোপোভভ

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