
我正试图将一栏分为两栏:
我的数据看起来像:
第一表
Value
4 vs. 6
4 vs. 7
1 vs. 3
5
6 vs. 5
6
3 我想将值列按vs.s拆分:
我试过:
dataframe[['Today', 'Yesterday']] = dataframe["Value"].str.split("vs.", expand=True)我有以下输出:
Value
4 vs. 6
4 vs. 7
1 vs. 3
5
6 vs. 5
6
3
Today
4
4
1
0
6
0
0
Yesterday
6
7
3
0
5
0
0当没有vs.v时,我不会期望0值。
我想要的是:
第三表
Value
4 vs. 6
4 vs. 7
1 vs. 3
5
6 vs. 5
6
3
Today
4
4
1
5
6
6
3
Yesterday
6
7
3
5
5
6
3谢谢你的建议。
发布于 2020-06-22 12:42:04
你可以试试这个,使用apply
dataframe["Value"]=dataframe["Value"].apply(lambda x: x+'vs.'+x if 'vs.' not in x else x)
dataframe[['Today', 'Yesterday']] = dataframe["Value"].str.split("vs.", expand=True)发布于 2020-06-22 12:45:23
或者这个:
// your dataframe
df = pd.DataFrame(["4 vs. 6", "4 vs. 7", "1 vs. 3","5", "6 vs. 5", "6", "3"], columns=["values"])
def getToday(string):
if "vs" in string:
return string.split("vs.")[0].strip()
else:
return string.strip()
def getYesterday(string):
if "vs" in string:
return string.split("vs.")[1].strip()
else:
return string.strip()
df["yesterday"] = df["values"].apply(getYesterday)
df["today"] = df["values"].apply(getToday)https://stackoverflow.com/questions/62513703
复制相似问题