根据条件插入索引的新行

时间:2018-05-25 07:30:34

标签: python pandas dataframe

我有一个带有命名索引的pandas df和两个列,如图所示。

enter image description here

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

可以看出现在添加了最后一行

2 个答案:

答案 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)

如果要在具有指定索引值的数据框中添加行

df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))
print(df)

enter image description here

df.loc["21"] = {"A":3,"B":3}
print(df)

enter image description here

包含列名和值的字典。 试试这个