熊猫:如果A列中的行包含“ x”,则将“ y”写入B列中的行 - python

对于pandas,我正在寻找一种方法,用于根据A列中对应行的子字符串将条件值写入B列中的每一行。

因此,如果A中的单元格包含"BULL",则将"Long"写入B。或者,如果A中的单元格包含"BEAR",则将"Short"写入B

所需的输出:

A                  B
"BULL APPLE X5"    "Long"
"BEAR APPLE X5"    "Short"
"BULL APPLE X5"    "Long"

B最初为空:df = pd.DataFrame([['BULL APPLE X5',''],['BEAR APPLE X5',''],['BULL APPLE X5','']],columns=['A','B'])

python大神给出的解决方案

当您错误地创建数据框时,您的代码将出错,只需创建单个列A然后基于B添加A即可:

import pandas as pd
df = pd.DataFrame(["BULL","BEAR","BULL"], columns=['A'])
df["B"] = ["Long" if ele  == "BULL" else "Short" for ele in df["A"]]

print(df)

    A      B
0  BULL   Long
1  BEAR  Short
2  BULL   Long

还是在创建数据框之前对数据进行逻辑处理:

import pandas as pd
data = ["BULL","BEAR","BULL"]
data2 = ["Long" if ele  == "BULL" else "Short" for ele in data]
df = pd.DataFrame(list(zip(data, data2)), columns=['A','B'])

print(df)
      A      B
 0  BULL   Long
 1  BEAR  Short
 2  BULL   Long

为了您的编辑:

df = pd.DataFrame([['BULL APPLE X5',''],['BEAR APPLE X5',''],['BULL APPLE X5','']], columns=['A','B'])

df["B"] = df["A"].map(lambda x: "Long" if "BULL" in x else "Short" if "BEAR" in x else "")

print(df)

            A      B
0  BULL APPLE X5   Long
1  BEAR APPLE X5  Short
2  BULL APPLE X5   Long

或者只是在下面添加列:

df = pd.DataFrame(['BULL APPLE X5','BEAR APPLE X5','BLL APPLE X5'], columns=['A'])

df["B"] = df["A"].map(lambda x: "Long" if "BULL" in x else "Short" if "BEAR" in x else "")

print(df)

或使用包含:

df = pd.DataFrame([['BULL APPLE X5',''],['BEAR APPLE X5',''],['BULL APPLE X5','']], columns=['A','B'])


df["B"][df['A'].str.contains("BULL")] = "Long"
df["B"][df['A'].str.contains("BEAR")] = "Short"

print(df)
0  BULL APPLE X5   Long
1  BEAR APPLE X5  Short
2  BULL APPLE X5   Long

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

字符串文字中的正斜杠表现异常 - python

为什么S1和S2在撇号位置方面表现不同?S1="1/282/03/10" S2="4/107/03/10" R1="".join({"N\'" ,S1,"\'" }) R2="".join({"N\'…

基本功能帮助-Python - python

我对Python还是很陌生,我正忙于弄清楚这些讨厌的函数是如何工作的。我正在编写的程序应该可以计算出三角形的面积,但实际上我无法它可以将局部变量返回给其他函数。任何帮助将不胜感激!# Area of a triangle base = 0 height = 0 area = 0 def inData(): base = float(raw_input(�…

如何使PyCharm从函数定义中获取类型提示并在文档字符串中填充类型值? - python

我总是在函数定义中使用类型提示,例如:def foo(a: int, b: str) -> bool: pass 当我使用PyCharm自动文档字符串生成器在我的代码中创建文档字符串时,我得到以下信息:def foo(a: int, b: str) -> bool: """ :param a: :type a: :p…