از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش انتخاب ستون ها در Pandas Based روی یک پیشوند رشته
سرفصلهای مطلب
معرفی
Pandas یک کتابخانه قدرتمند پایتون برای کار و تجزیه و تحلیل داده ها است. یکی از عملیاتی که ممکن است لازم باشد هنگام کار با داده ها در پانداها انجام دهید، انتخاب ستون ها است روی پیشوند رشته آنها این می تواند زمانی مفید باشد که یک DataFrame بزرگ دارید و می خواهید تمرکز کنید روی ستون های خاصی که یک پیشوند مشترک دارند.
در این بایت، چند روش برای دستیابی به این هدف را بررسی خواهیم کرد، از جمله ایجاد یک سری برای انتخاب ستون ها و استفاده از آن DataFrame.loc
.
همه ستون هایی که با یک رشته داده شده شروع می شوند را انتخاب کنید
بیایید با یک DataFrame ساده شروع کنیم:
import pandas as pd
data = {
'item1': (1, 2, 3),
'item2': (4, 5, 6),
'stuff1': (7, 8, 9),
'stuff2': (10, 11, 12)
}
df = pd.DataFrame(data)
print(df)
خروجی:
item1 item2 stuff1 stuff2
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12
برای انتخاب ستون هایی که با “اقلام” شروع می شوند، می توانید از درک لیست استفاده کنید:
selected_columns = (column for column in df.columns if column.startswith('item'))
print(df(selected_columns))
خروجی:
item1 item2
0 1 4
1 2 5
2 3 6
ایجاد یک سری برای انتخاب ستون ها
روش دیگری برای انتخاب ستون ها بر اساس روی پیشوند رشته آنها ایجاد یک شیء سری از ستون های DataFrame و سپس استفاده از آن است str.startswith()
روش. این روش یک سری بولی را برمی گرداند که در آن a True
مقدار به این معنی است که نام ستون با رشته مشخص شده شروع می شود.
selected_columns = pd.Series(df.columns).str.startswith('item')
print(df.loc(:, selected_columns))
خروجی:
item1 item2
0 1 4
1 2 5
2 3 6
استفاده کردن DataFrame.loc برای انتخاب ستون ها
این DataFrame.loc
روش در درجه اول مبتنی بر برچسب است، اما ممکن است با آرایه بولی نیز استفاده شود. این ix
ایندکسر برای DataFrame اکنون منسوخ شده است، زیرا دارای تعدادی مشکلات است. .loc
الف را بالا خواهد برد KeyError
زمانی که آیتم ها پیدا نمی شوند
به مثال زیر توجه کنید:
selected_columns = df.columns(df.columns.str.startswith('item'))
print(df.loc(:, selected_columns))
خروجی:
item1 item2
0 1 4
1 2 5
2 3 6
در اینجا، ابتدا یک آرایه بولی ایجاد می کنیم که هست True
برای ستون هایی که با “اقلام” شروع می شوند. سپس از این آرایه برای انتخاب ستون های مربوطه از DataFrame با استفاده از .loc
نمایه ساز این روش کارآمدتر از روش های قبلی است، به خصوص برای DataFrame های بزرگ، زیرا از ایجاد یک لیست یا سری میانی جلوگیری می کند.
اعمال کردن DataFrame.filter() برای انتخاب ستون
این filter()
تابع در پانداها DataFrame یک روش منعطف و کارآمد برای انتخاب ستون ها بر اساس ارائه می دهد روی نام آنها به ویژه در هنگام برخورد با مجموعه داده های بزرگ با ستون های بسیار مفید است.
این filter()
تابع به ما امکان می دهد ستون ها را بر اساس انتخاب کنیم روی برچسب های آنها ما می توانیم استفاده کنیم like
پارامتر برای تعیین الگوی رشته ای که با نام ستون ها مطابقت دارد. با این حال، اگر بخواهیم بر اساس ستون ها را انتخاب کنیم روی یک پیشوند رشته، می توانیم از آن استفاده کنیم regex
پارامتر.
در اینجا یک مثال است:
import pandas as pd
df = pd.DataFrame({
'product_id': (101, 102, 103, 104),
'product_name': ('apple', 'banana', 'cherry', 'date'),
'product_price': (1.2, 0.5, 0.75, 1.3),
'product_weight': (150, 120, 50, 60)
})
df_filtered = df.filter(regex='^product')
print(df_filtered)
این خروجی خواهد داشت:
product_id product_name product_price product_weight
0 101 apple 1.20 150
1 102 banana 0.50 120
2 103 cherry 0.75 50
3 104 date 1.30 60
در کد بالا، ^
نماد یک عبارت منظم است که با شروع یک رشته مطابقت دارد. از این رو، '^product'
تمام نام ستونهایی که با «محصول» شروع میشوند مطابقت خواهد داشت.
بعد: این filter()
تابع یک DataFrame جدید برمی گرداند که داده ها را با DataFrame اصلی به اشتراک می گذارد. بنابراین، هر گونه تغییر در DataFrame جدید انجام خواهد شد نه DataFrame اصلی را تحت تأثیر قرار می دهد.
نتیجه
در این بایت، روشهای مختلفی را برای انتخاب ستونها در پاندای DataFrame بررسی کردیم روی یک پیشوند رشته ما یاد گرفتیم که چگونه یک سری ایجاد کنیم و از آن برای انتخاب ستون ها استفاده کنیم، چگونه از آن استفاده کنیم DataFrame.loc
تابع و روش اعمال DataFrame.filter()
تابع. البته هر کدام از این روش ها مزایا و موارد کاربردی خاص خود را دارند. انتخاب روش بستگی دارد روی الزامات خاص کار تجزیه و تحلیل داده شما.
(برچسبها به ترجمه)# python
منتشر شده در 1402-12-30 07:21:05