gpt4 book ai didi

python根据另一列的条件在数据框中添加行

转载 作者:行者123 更新时间:2023-12-01 08:38:56 24 4
gpt4 key购买 nike

我拥有的:

df = pd.DataFrame(data = ["version11.11","version2.2","version3"], columns=["software_version"])


Index software_version
0 version11.11
1 version2.2
2 version3

我想做的事情:

用于检测数据帧列中名为 software_version 的倒数第二个字符的类型,并根据该条件在数据帧中创建一个新列。

如果倒数第二个字符是数字或字母,则提取整个名称,不包含最后一个字母/数字。例如 version11.11 变为 version11.1version3 变为 version。 elif,它是小数位,然后提取到小数位之前,version2.2变成version2

输出应该是:

  Index software_version  main_software
0 version11.11 version11.1
1 version2.2 version2
2 version3 version

到目前为止我做了什么:

如何干净地添加 main_software 上方的列?

import pandas as pd

df = pd.DataFrame(data = ["version11.11","version2.2","version3"], columns=["software_version"])

for name in df.software_version:
if name[-2].isalnum():
print(name[:-1])

elif name[-2] == ".":
print(name[:-2])

else :
print("!Alphanum-dot")

最佳答案

您可以首先定义一个函数来对字符串进行必要的更改。

def GetMainSoftware(string):
new_string=string[:-1] #first remove the last character
if(new_string[-1]=="."): #if "." is present, remove that too
return new_string[:-1]
else:
return new_string

然后使用 apply在数据框上创建具有这些细节的新列。

df["main_software"]=df.apply(lambda row: GetMainSoftware(row["software_version"]),axis=1)

df 现在将是:

  software_version main_software
0 version11.11 version11.1
1 version2.2 version2
2 version3 version

关于python根据另一列的条件在数据框中添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53579477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com