python - 根据条件插入索引的新行
问题描述
我有一个带有命名索引和两列的 pandas df,如图所示。
df = pd.DataFrame(columns=['system_call','frequency','file_frequency'])
df.set_index('system_call', inplace=True)
如果满足 if-else 条件,我想添加一个新行。我试过df.loc[-1]=[words[0],words[1],1]
了,但我认为它可能适用于未命名的索引。
预期产出——
system_call frequency file_frequency
madvise 300 3
write 277 2
read 23 5
ioctl 45 4
getuid 78 2
epoll_pwait 12 1
futex 13 6
可以看出,现在添加了最后一行
解决方案
我相信需要,如果futex
不存在于index
:
df.loc['futex']=[13,6]
print (df)
frequency file_frequency
system_call
madvise 300 3
write 277 2
read 23 5
ioctl 45 4
getuid 78 2
epoll_pwait 12 1
futex 13 6
如果存在,则重写行:
df.loc['madvise']=[130,100]
print (df)
frequency file_frequency
system_call
madvise 130 100
write 277 2
read 23 5
ioctl 45 4
getuid 78 2
epoll_pwait 12 1
如果需要总是添加新的行使用append
索引Series
作为列名和name
新的索引值:
df = df.append(pd.Series([13,6], name='futex', index=df.columns))
print (df)
frequency file_frequency
system_call
madvise 300 3
write 277 2
read 23 5
ioctl 45 4
getuid 78 2
epoll_pwait 12 1
futex 13 6
df = df.append(pd.Series([130,100], name='madvise', index=df.columns))
print (df)
frequency file_frequency
system_call
madvise 300 3
write 277 2
read 23 5
ioctl 45 4
getuid 78 2
epoll_pwait 12 1
madvise 130 100
推荐阅读
- python - 如何在 datetime 模块中格式化我的输出?
- java - net.minecraft.util.ReportedException:勾选实体
- c# - 除了 [Authorize] 注释之外运行其他逻辑
- python - django 中的书签系统,如 instagram
- spring - 遇到“使用 Spring Boot 和 Kotlin 构建 Web 应用程序”spring 官方文档示例的问题
- ios - 未定义的符号:___darwin_check_fd_set_overflow
- ios - MSAL - 使用 Swift 4.2 在 iOS 中验证令牌时遇到问题
- django - 如何在 Django 中跟踪用户对帖子的浏览量?
- c# - OracleCommand 并不总是尊重 SchemaOnly
- mysql - 从 mysql 表打开 URL