вставить индексированную новую строку на основе условия - PullRequest
0 голосов
/ 25 мая 2018

У меня есть 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 голосов
/ 25 мая 2018

Если вы хотите добавить в фрейм данных строку с указанным значением индекса

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

словарь с именем и значением столбца.Попробуйте это

0 голосов
/ 25 мая 2018

Я считаю нужным, если 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...