python基于另一列的条件在dataframe中添加行

2024-04-25 06:25:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我拥有的:

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的dataframe列中最后第二个字符的类型,并基于该条件在dataframe中创建一个新列。在

如果最后的第二个字符是数字或字母表,则提取不带最后一个字母/数字的全名。例如version11.11变成{},或者{}变成{}。elif,它是一个小数位,然后在小数点之前提取til,version2.2变成{}

输出应为:

^{2}$

我目前所做的:

如何在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")

Tags: columnsnamedataframedfdataindexversionsoftware
1条回答
网友
1楼 · 发布于 2024-04-25 06:25:25

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

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

然后在dataframe上使用^{}来创建一个包含以下细节的新列。在

^{pr2}$

df现在将是:

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

相关问题 更多 >