Mohamed Elnemr نشر 31 أغسطس 2021 أرسل تقرير مشاركة نشر 31 أغسطس 2021 لدي بيانات ذات حجم 20x4000 على شكل Dataframe. اثنان من الأعمدة في تلك ال dataframe هما year و month وأريد عمل متغير جديد يدعي period يقوم بدمج العمود year بجانب العمود month كالتالي: year month period 2021 june 2021june كيف يمكنني عمل هذا؟ 3 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 """ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 محمد أبو عواد نشر 31 أغسطس 2021 أرسل تقرير مشاركة نشر 31 أغسطس 2021 تستطيع استخدام lambda لفعل ذلك كالتالي combine_lambda = lambda x: '{}{}'.format(x.Year, x.quarter) ثم تستطيع استخدم الناتج في إنشاء العمود الجديد كالتالي df['period'] = df.apply(combine_lambda, axis = 1) 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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) اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Mohamed Elnemr
لدي بيانات ذات حجم 20x4000 على شكل Dataframe. اثنان من الأعمدة في تلك ال dataframe هما year و month وأريد عمل متغير جديد يدعي period يقوم بدمج العمود year بجانب العمود month كالتالي:
كيف يمكنني عمل هذا؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.