Joy*_*ove 4 object dataframe pandas
这已经部分覆盖。
该dtype of df["D"] = np.nan
在接受的答案是dtype=numpy.float64
。
有没有办法在每个单元格中初始化一个空列表?
尝试过,df["D"] = [[]] * len(df)
但是所有值都指向同一对象,将一个值设置为一个将全部设置。
df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]})
df
A B
0 1 2
1 2 3
2 3 4
df["D"] = [[]] * len(df)
df
A B D
0 1 2 []
1 2 3 []
2 3 4 []
df['D'][1].append(['a','b','c','d'])
df
A B D
0 1 2 [[a, b, c, d]]
1 2 3 [[a, b, c, d]]
2 3 4 [[a, b, c, d]]
Run Code Online (Sandbox Code Playgroud)
通缉
A B D
0 1 2 []
1 2 3 [[a, b, c, d]]
2 3 4 []
Run Code Online (Sandbox Code Playgroud)
使用
df["D"] = [[] for _ in range(len(df))]
Run Code Online (Sandbox Code Playgroud)
代替
df["D"] = [[]] * len(df)
Run Code Online (Sandbox Code Playgroud)
这样,您将为[]
每一行创建不同的内容。
基本上[[] for _ in range(len(df))]
是一个列表理解。它[]
为中的每个值创建一个range(len(df))
。
此代码具有与以下功能相同的功能
l = []
for _ in range(len(df)):
l.append([])
Run Code Online (Sandbox Code Playgroud)
但是明显更快,更容易编写,甚至更具可读性。
如果您想进一步了解清单理解,我建议为这个问题给出答案。
如果您想进一步了解执行此操作时为什么会发生这种情况[[]] * len(df)
,建议您回答此问题
归档时间: |
|
查看次数: |
3873 次 |
最近记录: |