使用列表sli指定多个pandas列

2024-09-27 21:27:41 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,可以为列表中的对象分配多个变量。是否可以对pandas数据帧执行相同的操作,例如:

df.Trinucleotide
0   ACA 
1   ACC
2   ACG
3   ACT
4   ACA
5   ACC
6   ACG
7   ACT
8   ACA
9   ACC

df.loc[:,['First','Second','Third']] =  df.Trinucleotide.apply(lambda x: list(x)) 

这会导致keyrerror:“['First''Second''Third']not in index”错误,同时用逗号分隔变量也不起作用。在

^{pr2}$

有没有一种方法可以不显式地将每个变量分配给列表的切片索引?在


Tags: 数据对象pandasdf列表actlocfirst
1条回答
网友
1楼 · 发布于 2024-09-27 21:27:41

要在使用apply时创建多个列,我认为最好返回一个Series,而不是一个列表。{{2>可以通过设置来设置列名称。所以你可以:

# Reading your data in
df = pd.read_clipboard(header=None, index_col=0)
df.columns = ['Trinucleotide']
df
Out[9]: 
  Trinucleotide
0              
0           ACA
1           ACC
2           ACG
# etc.

new_cols = df['Trinucleotide'].apply(
    lambda x: pd.Series(list(x), index=['First', 'Second', 'Third'])
)
df[['First', 'Second', 'Third']] = new_cols

df
Out[8]: 
  Trinucleotide First Second Third
0                                 
0           ACA     A      C     A
1           ACC     A      C     C
2           ACG     A      C     G
3           ACT     A      C     T
4           ACA     A      C     A
5           ACC     A      C     C
6           ACG     A      C     G
7           ACT     A      C     T
8           ACA     A      C     A
9           ACC     A      C     C

相关问题 更多 >

    热门问题