In [1]:
import pandas as pd
import numpy as np
In [2]:
df = pd.DataFrame({'A': [-20, -10, 0, 10, 20],
'B': [1, 2, 3, 4, 5],
'C': ['a', 'b', 'b', 'b', 'a']})
In [3]:
print(df)
In [4]:
df.loc[df['A'] < 0, 'A'] = -100
df.loc[~(df['A'] < 0), 'A'] = 100
print(df)
In [5]:
print(df['A'] < 0)
In [6]:
print(~(df['A'] < 0))
In [7]:
print(df.loc[df['A'] < 0, 'A'])
In [8]:
df.loc[df['A'] < 0, 'A'] = -10
print(df)
In [9]:
df.loc[~(df['A'] < 0), 'A'] = df['B']
print(df)
In [10]:
df.loc[df['B'] % 2 == 0, 'D'] = 'even'
df.loc[df['B'] % 2 != 0, 'D'] = 'odd'
print(df)
In [11]:
df.loc[~(df['A'] < 0) & (df['C'] == 'b'), 'E'] = df['B'] * 2
print(df)
In [12]:
df.loc[~(df['A'] < 0), 'A'] = 10
print(df)
In [13]:
df.loc[df['C'] == 'a', 'F'] = df['A']
df.loc[df['C'] == 'b', 'F'] = df['B']
print(df)
In [14]:
df['F'] = df['F'].astype(int)
print(df)
In [15]:
df.loc[df['C'] == 'a', ['E', 'F']] = 100
print(df)
In [16]:
print(df < 0)
In [17]:
print(df[df < 0])
In [18]:
# df[df < 0] = 0
# TypeError: Cannot do inplace boolean setting on mixed-types with a non np.nan value
In [19]:
df = pd.DataFrame({'A': [-20, -10, 0, 10, 20],
'B': [1, 2, 3, 4, 5],
'C': ['a', 'b', 'b', 'b', 'a']})
print(df)
In [20]:
print(df['A'].where(df['C'] == 'a'))
In [21]:
print(df['A'].where(df['C'] == 'a', 100))
In [22]:
print(df['A'].where(df['C'] == 'a', df['B']))
In [23]:
df['D'] = df['A'].where(df['C'] == 'a', df['B'])
print(df)
In [24]:
df['D'].where((df['D'] % 2 == 0) & (df['A'] < 0), df['D'] * 100, inplace=True)
print(df)
In [25]:
print(df < 0)
In [26]:
print(df.where(df < 0))
In [27]:
print(df.where(df < 0, df * 2))
In [28]:
print(df.where(df < 0, 100))
In [29]:
df = pd.DataFrame({'A': [-20, -10, 0, 10, 20],
'B': [1, 2, 3, 4, 5],
'C': ['a', 'b', 'b', 'b', 'a']})
print(df)
In [30]:
print(df['C'].mask(df['C'] == 'a'))
In [31]:
print(df['C'].mask(df['C'] == 'a', 100))
In [32]:
df['D'] = df['A'].mask(df['C'] == 'a', df['B'])
print(df)
In [33]:
df['D'].mask(df['D'] % 2 != 0, df['D'] * 10, inplace=True)
print(df)
In [34]:
print(df.mask(df < 0, -100))
In [35]:
print(df.select_dtypes(include='number').mask(df < 0, -100))
In [36]:
df_mask = df.select_dtypes(include='number').mask(df < 0, -100)
df_mask = pd.concat([df_mask, df.select_dtypes(exclude='number')], axis=1)
print(df_mask.sort_index(axis=1))
In [37]:
df = pd.DataFrame({'A': [-20, -10, 0, 10, 20],
'B': [1, 2, 3, 4, 5],
'C': ['a', 'b', 'b', 'b', 'a']})
print(df)
In [38]:
print(np.where(df['B'] % 2 == 0, 'even', 'odd'))
In [39]:
print(np.where(df['C'] == 'a', df['A'], df['B']))
In [40]:
df['D'] = np.where(df['B'] % 2 == 0, 'even', 'odd')
print(df)
In [41]:
df['E'] = np.where(df['C'] == 'a', df['A'], df['B'])
print(df)
In [42]:
print(np.where(df < 0, df, 100))
In [43]:
df_np_where = pd.DataFrame(np.where(df < 0, df, 100),
index=df.index, columns=df.columns)
In [44]:
print(df_np_where)