Python 按分隔符拆分列并仅保留新名称
我想提出以下问题: 现在,我只想保留新名称:Python 按分隔符拆分列并仅保留新名称,python,pandas,dataframe,split,Python,Pandas,Dataframe,Split,我想提出以下问题: 现在,我只想保留新名称: df[['Name','allele']] = df['V'].str.split('-',expand=True) 但df也存储“V”: 。。。 有方便的钥匙吗? 我知道我能做到: df.drop(columns='V', axis=1, inplace=True) 我更喜欢一个键而不是另一行代码,因为在我的项目中,我必须重复相同的事情好几次,我总共有25个名称。您可以创建一个新的数据帧并使用: 如果您不想创建新的数据帧,而您想将其保存在原
df[['Name','allele']] = df['V'].str.split('-',expand=True)
但df也存储“V”:
。。。
有方便的钥匙吗?
我知道我能做到:
df.drop(columns='V', axis=1, inplace=True)
我更喜欢一个键而不是另一行代码,因为在我的项目中,我必须重复相同的事情好几次,我总共有25个名称。您可以创建一个新的数据帧并使用:
如果您不想创建新的数据帧,而您想将其保存在原始数据帧中,并在一行中删除“V”,则可以使用
好主意!在我的例子中,我希望避免再次指定名称,因为我有25个名称。您的意思是什么?我的意思是:列={0:'Name',1:'allege'}如果将数据保存在已创建的列中,则必须指定保存数据的列的标签。因此你必须写下来。就像你在问题中所展示的那样。同样,如果创建新列,则必须指定名称。换句话说,如果希望列以某种方式具有该名称,则必须指定该名称。是否要对比V更多的列应用此操作?问题是我将其保存为以下格式:问题={'num_vars':25,'names':['Name1','Name2','…],'bounds':[[1,2],…]}可能重复
df
V Name allele
0 IGHV7-B*01 IGHV7 B*01
1 IGHV7-B*01 IGHV7 B*01
df.drop(columns='V', axis=1, inplace=True)
new_df=df['V'].str.split('-',expand=True).rename(columns={0:'Name',1:'Allete'})
print(new_df)
Name allele
0 IGHV7 B*01
1 IGHV7 B*01
2 IGHV6 A*01
3 GHV6 A*01
4 IGHV6 A*01
5 IGHV6 A*01
6 IGHV4 L*03
7 IGHV4 L*03
8 IGHV5 A*01
9 IGHV5 A*04
10 IGHV6 A*02
11 IGHV6 A*02
df=pd.concat([df.loc[:,~df.columns.isin(['V','allete','Name'])],df['V'].str.split('-',expand=True).rename(columns={0:'Name',1:'allele'})],axis=1)