मेरे पास यह डीएफ है:

    Home    Away    5+ corners  6+ corners  7+ corners  8+ corners  9+ corners  10+ corners 11+ corners 12+ corners 13+ corners 14+ corners
0   Aston Villa Leeds   1/100   1/50    1/20    1/8 1/4 4/9 4/6 11/10   13/8    5/2
1   West Ham    Manchester City 1/100   1/33    1/12    1/6 1/3 4/7 10/11   11/8    2/1 3/1
2   Fulham  Crystal Palace  1/66    1/33    1/10    1/5 2/5 4/6 11/10   7/4 5/2 4/1
3   Manchester Utd  Chelsea 1/66    1/33    1/8 1/5 2/5 8/11    11/10   15/8    11/4    4/1
4   Liverpool   Sheffield Utd   1/100   1/50    1/20    1/8 2/7 4/9 8/11    11/10   7/4 5/2
5   Southampton Everton 1/66    1/33    1/12    1/5 4/11    8/13    1/1 13/8    5/2 7/2
6   Wolves  Newcastle   1/50    1/20    1/8 2/7 1/2 4/5 5/4 2/1 3/1 5/1
7   Arsenal Leicester   1/100   1/33    1/12    1/6 1/3 1/2 10/11   11/8    2/1 3/1
8   Brighton    West Brom   1/66    1/33    1/8 1/4 2/5 4/6 11/10   7/4 11/4    4/1
9   Burnley Tottenham   1/100   1/33    1/12    1/6 1/3 4/7 10/11   11/8    9/4 3/1

जिसे मैं दशमलव ऑड्स में बदलना चाहूंगा।

मुझे पता है कि मैं इसे प्राप्त करने के लिए .split('/') का उपयोग कर सकता हूं लेकिन यह सोच रहा था कि ऐसा करने का कोई तेज़ तरीका है या नहीं।

0
Sammyboi179 23 अक्टूबर 2020, 19:35

3 जवाब

सबसे बढ़िया उत्तर

जैसा कि @ch3steR द्वारा सुझाया गया है, pd.eval का प्रयोग करें और इसे आजमाएं

df['col_name'] = pd.eval(target=df, expr=df['col_name'])
1
Ajay A 23 अक्टूबर 2020, 20:04

eval फ़ंक्शन के बारे में क्या?

result = eval('1/2')

संपादित करें: जैसा कि टिप्पणीकारों ने बताया है, eval में सुरक्षा संबंधी चिंताएं हैं, क्योंकि इसमें मनमानी कोड निष्पादित करने की क्षमता है।

0
mzndr 23 अक्टूबर 2020, 19:54

आप पांडा का उपयोग कर सकते हैं apply< /a> और eval एक साथ

df.loc[:,'5+ corners':] = df.loc[:,'5+ corners':].apply(pd.eval)

>>> print(df)
>>>
        Home            Away     5+ corners  ... 12+ corners 13+ corners 14+ corners
0     AstonVilla           Leeds       0.01  ...         1.1       1.625         2.5
1        WestHam  ManchesterCity       0.01  ...       1.375           2           3
2         Fulham   CrystalPalace  0.0151515  ...        1.75         2.5           4
3  ManchesterUtd         Chelsea  0.0151515  ...       1.875        2.75           4
4      Liverpool    SheffieldUtd       0.01  ...         1.1        1.75         2.5

यह केवल 100 पंक्तियों तक के डेटाफ़्रेम के लिए काम करेगा , देखें यहां

0
Shijith 23 अक्टूबर 2020, 21:13