append 增加行
import numpy as np
import pandas as pd
# 可以 append字典列表,同样需要必须ignore_index:
ls = [{'A': 16, 'B': 17, 'C': 18, 'D': 19}, {'A': 20, 'B': 21, 'C': 22, 'D': 23}]
df = df.append(ls, ignore_index=True)
|
A |
B |
C |
D |
0 |
16 |
17 |
18 |
19 |
1 |
20 |
21 |
22 |
23 |
# 添加有name的Series:
s = pd.Series([24, 25, 26, 27], index=df.columns, name='5')
df = df.append(s)
|
A |
B |
C |
D |
0 |
16 |
17 |
18 |
19 |
1 |
20 |
21 |
22 |
23 |
5 |
24 |
25 |
26 |
27 |
# 添加没有name的Series,必须ignore_index:
s = pd.Series([28, 29, 30, 31], index=df.columns)
df = df.append(s, ignore_index=True)
|
A |
B |
C |
D |
0 |
16 |
17 |
18 |
19 |
1 |
20 |
21 |
22 |
23 |
2 |
24 |
25 |
26 |
27 |
3 |
28 |
29 |
30 |
31 |
逐行增加
# 简单的逐行添加内容,可以:
df.loc[len(df)] = [32, 33, 34, 35]
# 但需要注意:len(df)生成的是int,如果生成的int,df已经存在了,会覆盖该行数据,而不会新增
|
A |
B |
C |
D |
0 |
16 |
17 |
18 |
19 |
1 |
20 |
21 |
22 |
23 |
2 |
24 |
25 |
26 |
27 |
3 |
28 |
29 |
30 |
31 |
4 |
32 |
33 |
34 |
35 |
增加行loc,at,set_value
# 想增加一行,行名称为"5",内容为[16, 17, 18, 19]
df.loc['5'] = [36, 37, 38, 39] # 后面的序列是Iterable就行
df.loc[i]={'a':1,'b':2}
df.at['5'] = [40, 41, 42, 43]
df.set_value('5', df.columns, [44, 45, 46, 47], takeable=False)
# warning,set_value会被取消
插入行
增加行没找到类似insert这种可以插入的方法,暂时替代方法可以先reindex,再赋值:
df = df.reindex(index=df.index.insert(2, '5'))
df.loc['5'] = [16, 17, 18, 19]