Spa*_*Boy 7 python series dataframe python-2.7 pandas
我遵循简单的DataFrame - df:
0
0 1
1 2
2 3
Run Code Online (Sandbox Code Playgroud)
一旦我尝试创建新列并为它们分配一些值,如下例所示:
Run Code Online (Sandbox Code Playgroud)df['col2', 'col3'] = [(2,3), (2,3), (2,3)]
我有以下结构
0 (col2, col3)
0 1 (2, 3)
1 2 (2, 3)
2 3 (2, 3)
Run Code Online (Sandbox Code Playgroud)
但是,我正在寻找一种方法来获取:
0 col2, col3
0 1 2, 3
1 2 2, 3
2 3 2, 3
Run Code Online (Sandbox Code Playgroud)
Spa*_*Boy 12
看起来解决方案很简单:
df['col2'], df['col3'] = zip(*[(2,3), (2,3), (2,3)])
Run Code Online (Sandbox Code Playgroud)
有一个方便的解决方案,可以通过元组列表将多个序列连接到一个数据框。您可以在分配之前从元组列表构造一个数据框:
df = pd.DataFrame({0: [1, 2, 3]})
df[['col2', 'col3']] = pd.DataFrame([(2,3), (2,3), (2,3)])
print(df)
0 col2 col3
0 1 2 3
1 2 2 3
2 3 2 3
Run Code Online (Sandbox Code Playgroud)
例如,当您希望加入任意数量的系列时,这很方便。
或者assign 可以使用
df.assign(col2 = 2, col3= 3)
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.assign.html