python - 有没有办法在熊猫数据框中附加一个列表?
问题描述
我在熊猫dataframe
dfr
中有一个列,其中有一个空列表。当我尝试附加它时,整个列都被更改了。
下面是附上的代码。
N = 10
Nr = list(range(10))
dfr = pd.DataFrame(Nr,columns = ['ID'])
dfr['Assignment'] = [[]] * dfr.shape[0]
for i in range(N):
dfr.loc[i][1].append(i)
dfr
现在,当我运行它时,整个分配列都会发生变化。有人能帮我一下吗。我只需要i
在每行的列表中有 1 个值。
解决方案
正如@AMC 所提到的,发生这种情况的原因是数据框单元格中的列表是相同的。结果,当您每次将数字附加到同一个列表时迭代数据框单元格时。因此,我建议您为每个单元格创建一个列表,如下所示:
for i in range(N):
dfr.at[i,'Assignment'] = [i]
ID Assignment
0 0 [0]
1 1 [1]
2 2 [2]
3 3 [3]
4 4 [4]
5 5 [5]
6 6 [6]
7 7 [7]
8 8 [8]
9 9 [9]
然后您可以独立更新这些单元格:
for i in range(N):
dfr.at[i,'Assignment'].append(i+1)
ID Assignment
0 0 [0, 1]
1 1 [1, 2]
2 2 [2, 3]
3 3 [3, 4]
4 4 [4, 5]
5 5 [5, 6]
6 6 [6, 7]
7 7 [7, 8]
8 8 [8, 9]
9 9 [9, 10]
推荐阅读
- python - 我的暂停显示如何在 Pygame 中正常工作?
- php - 为什么即使类确实存在并且命名空间正确,我也会收到错误 Class not found
- forms - 使用多个按钮时 SwiftUI 表单容器中的意外行为
- html - 使用视频标签嵌入 Html5 时视频放大
- pandas - Tkinter Scale 以将值输入到 pandas dataframe.head
- firewall - pfSense - 子网之间的防火墙
- reactjs - 用是的缺少属性反应正式打字稿
- android - 更改 React Native 的节点模块后如何重建项目
- node.js - “未找到 webpack binstubs。” 在 Heroku 上
- c# - HttpClient ReadAsStringAsync 与进度