我有一个带有命名索引的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
可以看出现在添加了最后一行
答案 0 :(得分:1)
我认为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
如果需要始终使用Series
添加新行append
,其中索引为列名,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
答案 1 :(得分:1)