将具有 Nan 值的行添加到 Pandas DataFrame
adding rows with Nan values to Pandas DataFrame
我想在每行之后插入具有 Nan 值的行
index
values
0
44
1
50
2
51
3
66
4
23
DataFrame 应该是这样的
index
values
0
44
1
Nan
2
50
3
Nan
4
51
5
Nan
6
66
7
Nan
8
23
使用concat
with DataFrame filled by NaN
s and same indices and then use DataFrame.sort_index
:
df = (pd.concat([df, pd.DataFrame(index=df.index)])
.sort_index(kind='stable', ignore_index=True))
print (df)
values
0 44.0
1 NaN
2 50.0
3 NaN
4 51.0
5 NaN
6 66.0
7 NaN
8 23.0
9 NaN
如果需要删除最后一个缺失值:
df = (pd.concat([df, pd.DataFrame(index=df.index)])
.sort_index(kind='stable', ignore_index=True)
.iloc[:-1])
print (df)
values
0 44.0
1 NaN
2 50.0
3 NaN
4 51.0
5 NaN
6 66.0
7 NaN
8 23.0
一个选项:
(df.assign(index=df['index']*2)
.set_index('index')
.reindex(range(len(df)*2))
.reset_index()
)
输出:
index values
0 0 44.0
1 1 NaN
2 2 50.0
3 3 NaN
4 4 51.0
5 5 NaN
6 6 66.0
7 7 NaN
8 8 23.0
9 9 NaN
我想在每行之后插入具有 Nan 值的行
index | values |
---|---|
0 | 44 |
1 | 50 |
2 | 51 |
3 | 66 |
4 | 23 |
DataFrame 应该是这样的
index | values |
---|---|
0 | 44 |
1 | Nan |
2 | 50 |
3 | Nan |
4 | 51 |
5 | Nan |
6 | 66 |
7 | Nan |
8 | 23 |
使用concat
with DataFrame filled by NaN
s and same indices and then use DataFrame.sort_index
:
df = (pd.concat([df, pd.DataFrame(index=df.index)])
.sort_index(kind='stable', ignore_index=True))
print (df)
values
0 44.0
1 NaN
2 50.0
3 NaN
4 51.0
5 NaN
6 66.0
7 NaN
8 23.0
9 NaN
如果需要删除最后一个缺失值:
df = (pd.concat([df, pd.DataFrame(index=df.index)])
.sort_index(kind='stable', ignore_index=True)
.iloc[:-1])
print (df)
values
0 44.0
1 NaN
2 50.0
3 NaN
4 51.0
5 NaN
6 66.0
7 NaN
8 23.0
一个选项:
(df.assign(index=df['index']*2)
.set_index('index')
.reindex(range(len(df)*2))
.reset_index()
)
输出:
index values
0 0 44.0
1 1 NaN
2 2 50.0
3 3 NaN
4 4 51.0
5 5 NaN
6 6 66.0
7 7 NaN
8 8 23.0
9 9 NaN