python - 向不退出的行添加值

标签 python python-3.x pandas

假设我有一个 pandas 数据框,如下所示:

row_number     value
1              21
3              10234
5              467
6              395
7              762

# notice row_number == 2 and == 4 are missing

对于row_number < 10(例如)的每个尚未存在行,我想插入value == 0的行.也就是说,我想获得以下数据集:

row_number     value
1              21
3              10234
5              467
6              395
7              762
2              0
4              0
8              0
9              0

我什至无法“选择”这些不存在的行。我试过这个:

my_df[my_df["row_number"] == i for i in range(10) if i not in 
my_df["row_number"]]

但是我收到无效语法错误

怎样才能实现我想要的目标?谢谢。

最佳答案

使用reindex范围 set_indexreset_index 索引:

df = df.set_index('row_number').reindex(range(1,10), fill_value=0).reset_index()
print (df)
   row_number  value
0           1     21
1           2      0
2           3  10234
3           4      0
4           5    467
5           6    395
6           7    762
7           8      0
8           9      0

如果顺序很重要:

a = df['row_number'].values.tolist() + np.setdiff1d(np.arange(1,10), df['row_number'].values).tolist()
print (a)
[1, 3, 5, 6, 7, 2, 4, 8, 9]

df = df.set_index('row_number').reindex(a, fill_value=0).reset_index()
print (df)
   row_number  value
0           1     21
1           3  10234
2           5    467
3           6    395
4           7    762
5           2      0
6           4      0
7           8      0
8           9      0

关于python - 向不退出的行添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45164802/

相关文章:

python - 将 Python 包转换为独立应用程序

python - 如何在opencv python中使用分水岭分割

python - 单元测试 pythons telnetlib

python - scrapy - 如何用 Pandas 数据框中的数据填充项目?

python - 融化唯一索引的 pandas 数据帧以与 ggplot/rpy2 一起使用

Python:比较两个应该相同但不相同的字符串

python - 在 python pandas 中按组回归

python-3.x - 从 Matplotlib 填充 Flask 图像

python-3.x - Python - Jira 使用/rest/api/2 创建具有共享配置的项目(现有项目)

python - 根据其他行的某些条件获取 pandas 行的内容