dar*_*oeu 2 python list-comprehension dataframe pandas one-liner
我想我已经明白了单行 for 循环的想法,但现在我遇到了问题。我知道我可以使用以下方式定义数据框列:
df = pd.DataFrame(columns=["columnA"])
list = [0, 1, 2, 3, 4]
df["columnA"] = [i for i in list]
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:是否可以在一行 for 循环中定义 2 列?
我试过这个:
df["columnA"], df["columnB"] = [i, i**2 for i in list]
df["columnA"], df["columnB"] = [[i, i**2] for i in list]
Run Code Online (Sandbox Code Playgroud)
这些都不起作用。我正在使用Python 3.10
你必须zip输出:
df['A'], df['B'] = zip(*[(i, i**2) for i in lst])
print(df)
# Output
A B
0 0 0
1 1 1
2 2 4
3 3 9
4 4 16
Run Code Online (Sandbox Code Playgroud)
您还可以使用np.array:
df[['A', 'B']] = np.array([(i, i**2) for i in lst])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |