Mohamed Elnemr نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 لدي بيانات ذات حجم 20x4000 على شكل Dataframe. اثنان من الأعمدة في تلك ال dataframe هما year و month وأريد عمل متغير جديد يدعي period يقوم بدمج العمود year بجانب العمود month كالتالي: year month period 2021 june 2021june كيف يمكنني عمل هذا؟ 3 اقتباس
0 Ali Haidar Ahmad نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 يمكنك القيام بذلك من خلال الدالة assign كالتالي: import pandas as pd df = pd.DataFrame({'Year': ['2020', '2021'], 'month': ['june', 'july']}) df """ Year month 0 2020 june 1 2021 july """ df = df.assign(period = df.Year.astype(str) + '-' + \ df.month.astype(str)) df """ Year month period 0 2020 june 2020-june 1 2021 july 2021-july """ أو باستخدام الدالة apply وتطبيق lambda على كل سطر من البيانات: import pandas as pd df = pd.DataFrame({'Year': ['2020', '2021'], 'month': ['june', 'july']}) df """ Year month 0 2020 june 1 2021 july """ df['period'] = df[df.columns[0:]].apply( lambda x: '-'.join(x.dropna().astype(str)), axis=1 ) df """ Year month period 0 2020 june 2020-june 1 2021 july 2021-july """ اقتباس
0 محمد أبو عواد نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 تستطيع استخدام lambda لفعل ذلك كالتالي combine_lambda = lambda x: '{}{}'.format(x.Year, x.quarter) ثم تستطيع استخدم الناتج في إنشاء العمود الجديد كالتالي df['period'] = df.apply(combine_lambda, axis = 1) 1 اقتباس
0 Ahmed Sharshar نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 لو أن كلا العمودين من النوع string يمكنك دمجهما مباشرة بالكود التالي: df["period"] = df["Year"] + df["month"] اما اذا كان احد الأعمدة أو كلاهما ليس من صيغة string يجب تحويله اولا ثم دمجهمها: df["period"] = df["Year"].astype(str) + df["month"] أو يمكنك استخدام الكود التالي ايضا كطريقة أخرى: df = pd.DataFrame({'Year': ['2020', '2021'], 'month': ['june', 'july']}) df['period'] = df[['Year', 'month']].apply(lambda x: ''.join(x), axis=1) ويكون الخرج على الشكل التالي: Year month period 0 2020 june 2021june 1 2021 july 2021july اما اذا أردت دمج العديد من الأعمدة سويا يمكنك استخدام الدالة agg لعمل هذا كالتالي: df['period'] = df[['Year', 'month', ...]].agg('-'.join, axis=1) اقتباس
السؤال
Mohamed Elnemr
لدي بيانات ذات حجم 20x4000 على شكل Dataframe. اثنان من الأعمدة في تلك ال dataframe هما year و month وأريد عمل متغير جديد يدعي period يقوم بدمج العمود year بجانب العمود month كالتالي:
كيف يمكنني عمل هذا؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.