是)我有的:
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.1
ORversion3
变为version
。elif,它的小数位然后在小数位前提取til,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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句