按顺序添加表中缺失的数字

b0zn9rqh  于 2022-10-23  发布在  其他
关注(0)|答案(3)|浏览(177)

我需要用Pandas修改csv文件。我有下表:

Interface   Description
1           Used
2           Used
3           Used
4           Used
6           Used
8           Used
12          Used
17          Used

我需要将“接口”列与1,20的范围相匹配,用缺失的数字填写表格,并在“描述”列中放置单词“自由”,然后按如下顺序排列:

Interface   Description
1           Used
2           Used
3           Used
4           Used
5           free
6           Used
7           free
8           Used
9           free
10          free
11          free
12          Used
13          free
14          free
15          free
16          free
17          Used
18          free
19          free
20          free
v8wbuo2f

v8wbuo2f1#

mergefillna组合使用

df = pd.DataFrame({
    'Interface': [1, 2, 3, 4, 6, 8, 12, 17],
    'Description': 'Used'})
df2 = pd.DataFrame({'Interface': range(1, 21)}).merge(df, how="left").fillna("free")
sshcrbum

sshcrbum2#

使用reindex的另一种方法

df.set_index('Interface').reindex(range(1,21)).fillna('free').reset_index()

    Interface Description
0           1        Used
1           2        Used
2           3        Used
3           4        Used
4           5        free
5           6        Used
6           7        free
7           8        Used
8           9        free
9          10        free
10         11        free
11         12        Used
12         13        free
13         14        free
14         15        free
15         16        free
16         17        Used
17         18        free
18         19        free
19         20        free
wtzytmuj

wtzytmuj3#

一个选项是从pyjanitor完成,以暴露缺失的行:


# pip install pyjanitor

import pandas as pd
import janitor
interface = {'Interface' : range(1, 21)}
df.complete(interface, fill_value='free')
    Interface Description
0           1        Used
1           2        Used
2           3        Used
3           4        Used
4           5        free
5           6        Used
6           7        free
7           8        Used
8           9        free
9          10        free
10         11        free
11         12        Used
12         13        free
13         14        free
14         15        free
15         16        free
16         17        Used
17         18        free
18         19        free
19         20        free

相关问题