使用if创建新列,else列表中的语句

时间:2019-03-21 15:15:27

标签: python-3.x dataframe if-statement

我需要使用A和B列中的if和else语句创建一个新列C:例如

以下代码不返回任何内容, 有人可以通知我正确的人吗

import numpy as np
import pandas as pd
a = np.arange(10)
b = [0.1,0.3,0.1, 0.2, 0.5, 0.4,0.7,0.56, 
0.78, 0.45]
df= pd.DataFrame(data=b, columns=['B'])
df2= pd.DataFrame(data=a, columns=['A'])
A = df2['A']
B = df['B']
print (A, B)

def comma ( A, B, c):

  if B >= 0.1 and B <0.4:
    c = B *2
  else:
    c = B*A

 print (c)

1 个答案:

答案 0 :(得分:0)

如果您考虑一个包含两列“ A”和“ B”的数据框,则可以使用apply函数根据您的条件返回新列

data = np.random.rand(10, 2)
df = pd.DataFrame(data=data, columns=['A', 'B'])

然后您可以使用apply函数根据您的条件返回新列

def cdt(x):
    if x['B'] >= 0.1 and x['B'] < 0.4:
        return 2 * x['B']
    return x['B'] * x['A']

df['C'] = df.apply(cdt, axis=1)