اذهب إلى المحتوى

Mohamed Elnemr

الأعضاء
  • المساهمات

    54
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    1

أجوبة بواسطة Mohamed Elnemr

  1. لدي مشكلة عندما أقوم برسم heatmap باستخدام seaborn واظهار الصورة باستخدام matplotK  فأنه يقوم بقص نصف الصف الأول وكذلك الأخير من الصورة التي تخرج، مثل هذا المثال:

    import pandas as pd
    import seaborn as sns
    import matplotlib.pyplot as plt
    
    data = pd.read_csv('data.csv')
    plt.figure(figsize=(10,5))
    sns.heatmap(data.corr())
    plt.show()

    الصورة الناتجة يكون فيها أول صف وأخر صف مقصوصين من النصف:

    Km4x6.thumb.png.59e7f2a0fd8be3d5c2b297ee6639141e.png

    ما حل تلك المشكلة؟

     

     

    • أعجبني 1
  2. لدي العديد من البيانات على شكل dataframe، واريد أن أجد طريقة أقوم بعمل إضافة لهم append مرة واحدة عوضاً عن عمل append لكل واحدة مفردها:

    df.append(df)

    لنفرض أن لدي  dataframes أسماؤهم d1,d2,d3,d4,d5  جربت الطريقة التالية لاضافتهم مرة واحدة لكن لم تفلح:

    df = rbind(d1,d2,d3,d4,d5)

    كيف يمكنني فعل هذا؟

    • أعجبني 3
  3. لدي بيانات على الشكل التالي:

        time    result
    1    01:00   +52A
    2    02:00   +62B
    3    03:00   +72C
    4    04:00   -82D
    5    05:00   -92E

    وأريد أن أجعلها تظهر على الشكل التالي:

        time    result
    1    01:00   52
    2    02:00   62
    3    03:00   72
    4    04:00   82
    5    05:00   92

    حاولت استخدام الدالة 

    .str.lstrip('+-')

    لكن يظهر لي الخطأ التالي:

    TypeError: wrapper() takes exactly 1 argument (2 given)

    كيف يمكنني عمل هذا؟

    • أعجبني 2
  4. لدي بيانات تحتوى على التاريخ كالتالي:

    import pandas as pd
    
    data = {'start_date': [pd.Timestamp('2021-01-24 13:03:12.050000'), pd.Timestamp('2021-01-27 11:57:18.240000'), pd.Timestamp('2021-01-23 10:07:47.660000')],
            'end_date': [pd.Timestamp('2021-01-26 23:41:21.870000'), pd.Timestamp('2021-01-27 15:38:22.540000'), pd.Timestamp('2021-01-23 18:50:41.420000')]}
    
    df = pd.DataFrame(data)

    قمت بعمل عمود لحساب الفرق بين تاريخين كالتالي:

    df['diff'] = df['end_date'] - df['start_date']

    لكنة يظهر لي خانة تدعى "days" عندما يكون الفرق بين التاريخين أكبر من 24 ساعة:

              start_date            end_ date             diff
    0 2021-01-24 13:03:12.050 2021-01-26 23:41:21.870 2 days 10:38:09.820000
    1 2021-01-27 11:57:18.240 2021-01-27 15:38:22.540 0 days 03:41:04.300000
    2 2021-01-23 10:07:47.660 2021-01-23 18:50:41.420 0 days 08:42:53.760000

    كيف يمكنني حساب الفرق بين الأيام دون ظهور العمود days، بحيث يكون الفرق فقط في شكل ساعات ودقائق؟

    • أعجبني 1
  5. لدي بيانات على شكل dataframe بحيث تحتوى على تواريخ، وكل تاريخ مربوط به حدث أو أكثر أو ليس به أحداث إطلاقا، التواريخ من المفترض أنها لشهر كامل، الا انني عندما أقوم بعمل groupby لجمع عدد الأحداث سوياً في كل تاريخ تابعه لها، يكون عدد التواريخ أقل من 30، وذلك لأن هناك بعض الأيام ليس بها أحداث فيتم إزالتها مباشرة كالتالي:

    df.groupby(['simpleDate']).size()
    
    09-02-2021     2
    09-03-2021    10
    09-06-2021     5
    09-07-2021     1

    لاحظ أن هناك تواريخ في المنتصف تم ازالتها لانها لا تحتوى على أحداث.

    أريد طباعة تلك التواريخ أيضا بحيث يكون عدد الأحداث بها 0 ولا يتم تجاهلها، كيف يمكنني فعل هذا؟

    • أعجبني 2
  6. أقوم بانشاء بيانات تحتوى على بعض المدن والمكاتب وكذلك مبيعات تلك المكاتب في المدن كالتالي:

    df = pd.DataFrame({'city': ['Cairo', 'Dohha', 'Riyadh', 'Dubai'] * 3,
                       'office_id': range(1, 7) * 2,
                       'sales': [np.random.randint(100000, 999999)
                                 for _ in range(12)]})
    
    df.groupby(['city', 'office_id']).agg({'sales': 'sum'})

    بحيث تظهر على الشكل التالي:

                      
    city   office_id     sales   
    Cairo     2          839507
              4          373917
              6          347225
    Dohha     1          798585
              3          890850
              5          454423
    Riyadh    1          819975
              3          202969
              5          614011
    Dubai     2          163942
              4          369858
              6          959285

    أريد حساب النسبة المئوية لمبيعات كل مكتب في كل مدينة علما أن محصلة المبيعات لكل المكاتب في كل مدينة = 100%

    كيف يمكنني فعل هذا؟

    • أعجبني 2
  7. قمت بعمل dataframe كالتالي:

    df = DataFrame(index=['A','B','C'], columns=['D','E'])
    
    >>> df
        D    E
    A  NaN  NaN
    B  NaN  NaN
    C  NaN  NaN

    وأريد وضع قيمة في خانة معينة بناء على مكان الخانة index بحيث تظهر كالتالي:

        D    E
    A  NaN  NaN
    B  NaN  NaN
    C  20   NaN

    كيف يمكنني فعل هذا؟

    • أعجبني 2
  8. أقوم بتحميل بيانات لدي بالشكل التالي:

    import pandas as pd
    df = pd.read_csv("D:\\data.csv")
    df['review']

    لكن يظهر لي هذا الخطأ:

    reviews_new['review']
    Traceback (most recent call last):
      File "<ipython-input-43-ed485b439a1c>", line 1, in <module>
        reviews_new['review']
      File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\core\frame.py", line 1997, in __getitem__
        return self._getitem_column(key)
      File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\core\frame.py", line 2004, in _getitem_column
        return self._get_item_cache(key)
      File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\core\generic.py", line 1350, in _get_item_cache
        values = self._data.get(item)
      File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\core\internals.py", line 3290, in get
        loc = self.items.get_loc(item)
      File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\indexes\base.py", line 1947, in get_loc
        return self._engine.get_loc(self._maybe_cast_indexer(key))
      File "pandas\index.pyx", line 137, in pandas.index.IndexEngine.get_loc (pandas\index.c:4154)
      File "pandas\index.pyx", line 159, in pandas.index.IndexEngine.get_loc (pandas\index.c:4018)
      File "pandas\hashtable.pyx", line 675, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12368)
      File "pandas\hashtable.pyx", line 683, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12322)
    KeyError: 'review'

    كيف أقوم بحل هذا الخطأ؟

    • أعجبني 1
  9. لدي بيانات على الشكل التالي:

    df=
           col1       col2
     0  384444683      593  
     1  384444684      594 
     2  384444686      596  

    وأريد تحويلها الى الشكل التالي بحيث أقوم بتحويل ال index الى عمود باسم index:

    df=
       index    col1        col2
     0  0     384444683      593  
     1  1     384444684      594 
     2  2     384444686      596 

    كيف يمكنني فعل هذا؟

    • أعجبني 2
  10. لدي بيانات على هيئة اثنان dataframes كالتالي:

    df1 = pandas.DataFrame(data = {'col1' : [1, 2, 3, 4, 5], 'col2' : [6, 7, 8, 9, 10]}) 
    df2 = pandas.DataFrame(data = {'col1' : [1, 2, 3], 'col2' : [6, 7, 8]})
    
    df1
    
      col1  col2
    0     1    6
    1     2    7
    2     3    8
    3     4    9
    4     5    10
    
    df2
    
      col1  col2
    0     1    6
    1     2    7
    2     3    8

    وأريد  الحصول على الصفوف التي تحتوى قيماً غير مشتركة بين الاثنتين بحيث يكون كالتالي:
     

      col1  col2
    3     4    9
    4     5    10

    كيف يمكنني فعل هذا؟

    • أعجبني 2
  11. أحاول قراءة العديد من ملفات csv باستخدام pandas لكن يظهر لي هذا الخطأ:

    File "C:\Importer\src\dfman\importer.py", line 26, in import_chr
         data = pd.read_csv(filepath, names=fields)
    File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 400, in parser_f
         return _read(filepath_or_buffer, kwds)
    File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 205, in _read
         return parser.read()
       File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 608, in read
         ret = self._engine.read(nrows)
    File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 1028, in read
         data = self._reader.read(nrows)
    File "parser.pyx", line 706, in pandas.parser.TextReader.read (pandas\parser.c:6745)
    File "parser.pyx", line 728, in pandas.parser.TextReader._read_low_memory (pandas\parser.c:6964)
    File "parser.pyx", line 804, in pandas.parser.TextReader._read_rows (pandas\parser.c:7780)
    File "parser.pyx", line 890, in pandas.parser.TextReader._convert_column_data (pandas\parser.c:8793)
    File "parser.pyx", line 950, in pandas.parser.TextReader._convert_tokens (pandas\parser.c:9484)
    File "parser.pyx", line 1026, in pandas.parser.TextReader._convert_with_dtype (pandas\parser.c:10642)
    File "parser.pyx", line 1046, in pandas.parser.TextReader._string_convert (pandas\parser.c:10853)
    File "parser.pyx", line 1278, in pandas.parser._string_box_utf8 (pandas\parser.c:15657)
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xda in position 6: invalid    continuation byte

    فما سببه وكيف يمكنني حله؟

    • أعجبني 1
  12. أحاول إستخراج البيانات من موقع الكتروني (خرائط جوجل) كالتالي:

    from urllib2 import Request, urlopen
    import json
    
    path1 = '40,-81.1'
    request=Request('http://maps.googleapis.com/maps/api/elevation/json?locations='+path1+'&sensor=false')
    response = urlopen(request)
    elevations = response.read()

    لكن البيانات التي ترجع من هذا الموقع تكون على شكل json، حاولت أن أقوم بقراءتها بهذا الشكل:

    pd.read_json(elevations)

    لكن هذا لا يحولها الى dataframe، كيف يمكنني تحويل json الى dataframe 

    • أعجبني 2
  13. لدي بيانات على شكل dataframe كالتالي:

     itm Date        Amount 
     420 2021-09-30   65211
     421 2021-09-09   29424
     421 2021-09-16   29877
     421 2021-09-23   30990
     421 2021-09-30   61303
     485 2021-09-09   71781
     485 2021-09-16   NaN
     485 2021-09-23   11072
     485 2021-09-30   113702
     489 2021-09-09   64731
     489 2021-09-16   NaN

    أود تحويل قيم NaN الى 0 ، لكن عندما أحاول يظهر لي الخطأ التالي:

    ValueError: cannot convert float NaN to integer

    كيف يمكنني حل تلك المشكلة؟

    • أعجبني 2
  14. لدي dataframe أقوم بانشاءها بالشكل التالي:

    import numpy as np
    import pandas as pd
    
    df = pd.DataFrame(np.random.rand(10, 5))

    وأريد أن أقوم باضافة عمود يقوم بحساب المتوسط كالتالي:

    df['mean'] = df.mean(1)

    اذا قمت بعرضها تظهر بالشكل التالي:

    In [1]: df
    Out[1]:
              0         1         2         3         4      mean
    0  0.445598  0.173835  0.343415  0.682252  0.582616  0.445543
    1  0.881592  0.696942  0.702232  0.696724  0.373551  0.670208
    2  0.662527  0.955193  0.131016  0.609548  0.804694  0.632596
    3  0.260919  0.783467  0.593433  0.033426  0.512019  0.436653
    4  0.131842  0.799367  0.182828  0.683330  0.019485  0.363371
    5  0.498784  0.873495  0.383811  0.699289  0.480447  0.587165
    6  0.388771  0.395757  0.745237  0.628406  0.784473  0.588529
    7  0.147986  0.459451  0.310961  0.706435  0.100914  0.345149
    8  0.394947  0.863494  0.585030  0.565944  0.356561  0.553195
    9  0.689260  0.865243  0.136481  0.386582  0.730399  0.561593

    كيف أجعل المتوسط mean يصبح أول عمود بدل من كونه الخامس؟

    • أعجبني 2
×
×
  • أضف...