私が持っているもの:
df = pd.DataFrame(data = ["version11.11","version2.2","version3"], columns=["software_version"])
Index software_version
0 version11.11
1 version2.2
2 version3
私がやろうとしていること:
呼び出されたデータフレーム列の最後から2番目の文字のタイプを検出し、software_version
その条件に基づいてデータフレームに新しい列を作成することです。
最後から2番目の文字が数字またはアルファベットの場合は、最後のアルファ/デジタルなしで名前全体を抽出します。など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]
コメントを追加