我有一个数据文件,其中包含时间间隔列,如0- 10、11 - 20、21 -30......、81-90。还有另外两列FH和SH。以下示例 Dataframe 代表我的部分数据:
df = pd.DataFrame()
df['Team'] = ['A','B','C']
df['0-10'] = ['4-0','2-2','3-2']
df ['11-20']= ['2-1','2-2','3-0']
df ['21-30'] = ['2-1','1-1','2-2']
df ['FH'] = ['5-3','6-6','5-5']
df ['SH'] = ['2-3','3-2','3-3']
我想做的是将元素拆分为时间间隔(0- 10,11 -20,21-30),这意味着i对于每个时间间隔[“0 - 10”]到[“0 - 10 F”和“0- 10A”]将具有两个不同的列,并且对于团队A,“0- 10 F”下的值将是4,“0- 10A”下的值将是0,我将对其他时间间隔“11-20”至“11- 20 F”和“11- 20 A”执行相同操作,我可以分别为每列编写代码,如下所示:
df ['0-10F'] = df['0-10'].str.split('-').str[0]
df ['0-10A'] = df['0-10'].str.split('-').str[1]
df ['11-20F'] = df['11-20'].str.split('-').str[0]
df ['11-20A'] = df['11-20'].str.split('-').str[1]
df ['21-30F'] = df['21-30'].str.split('-').str[0]
df ['21-30A'] = df['21-30'].str.split('-').str[1]
是否有更好的方法用一个通用代码为所有列编写它。以下是预期输出:
1条答案
按热度按时间hkmswyz61#
使用
DataFrame.filter
表示列名为-
的列,按每列循环并使用Series.str.split
创建新的DataFrame,如有必要,将值转换为整数: