如题,我有一个 pandas 中的一列(系列),其中每行都是一个列表,例如 [0,1,2,3,4,5]
。每个列表都有6个数字。我想将此列更改为6列,例如,[0,1,2,3,4,5]
将变成6列,其中 0
是第一列,1
是第二列,2
是第三列等等。我该怎么做?
如题,我有一个 pandas 中的一列(系列),其中每行都是一个列表,例如 [0,1,2,3,4,5]
。每个列表都有6个数字。我想将此列更改为6列,例如,[0,1,2,3,4,5]
将变成6列,其中 0
是第一列,1
是第二列,2
是第三列等等。我该怎么做?
不如 @jezrael 的解决方案快,但是很优雅 :-)
apply
与 pd.Series
df.a.apply(pd.Series)
0 1 2 3 4 5
0 0 1 2 3 4 5
1 0 1 2 3 4 5
或者df.a.apply(pd.Series, index=list('abcdef'))
a b c d e f
0 0 1 2 3 4 5
1 0 1 2 3 4 5
values
将列表转换为numpy array
,然后使用DataFrame
构造函数:df = pd.DataFrame({'a':[[0,1,2,3,4,5],[0,1,2,3,4,5]]})
print (df)
a
0 [0, 1, 2, 3, 4, 5]
1 [0, 1, 2, 3, 4, 5]
df1 = pd.DataFrame(df['a'].values.tolist())
print (df1)
0 1 2 3 4 5
0 0 1 2 3 4 5
1 0 1 2 3 4 5
cols = list('abcdef')
df1 = pd.DataFrame(df['a'].values.tolist(), columns=cols)
print (df1)
a b c d e f
0 0 1 2 3 4 5
1 0 1 2 3 4 5
df = pd.DataFrame([1,2,3,4,5],columns='a')
# .T stands for transpose
print(df.T)
import pandas as pd
# create a sample DataFrame with a column containing comma-separated values
df = pd.DataFrame({'Name': ['John,Doe', 'Jane,Smith', 'Bob,Jones']})
# split the values in the 'Name' column and create new columns for each element
df[['First Name', 'Last Name']] = df['Name'].str.split(',', expand=True)
# drop the original 'Name' column
df = df.drop('Name', axis=1)
# print the resulting DataFrame
print(df)