use*_*329 5 python group-by dataframe pandas
我有一个 pandas 数据框df。像这样创建:
a = np.array([0,0,0,1,1,1,2,2,2]).T
bcd = np.array([np.arange(1,10)]*3).T
df = pd.DataFrame(bcd, columns=["b","c","d"])
df["a"] = a
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
b c d a
0 1 1 1 0
1 2 2 2 0
2 3 3 3 0
3 4 4 4 1
4 5 5 5 1
5 6 6 6 1
6 7 7 7 2
7 8 8 8 2
8 9 9 9 2
Run Code Online (Sandbox Code Playgroud)
我想在 column 中的每个分组之后插入 3 行'a'。具体来说,我想在列中进行一些自动增量'b',并将None对象放在其他地方:类似:
b c d a
0 1 1 1 0
1 2 2 2 0
2 3 3 3 0
3 10 None None 0
4 11 None None 0
5 12 None None 0
6 4 4 4 1
7 5 5 5 1
8 6 6 6 1
9 10 None None 1
10 11 None None 1
11 12 None None 1
12 7 7 7 2
13 8 8 8 2
14 9 9 9 2
15 10 None None 2
16 11 None None 2
17 12 None None 2
Run Code Online (Sandbox Code Playgroud)
您想要做的并不是真正的插入操作,因为背后的数据结构DataFrame不允许简单的插入。因此,从本质上讲,您将必须DataFrame从旧的部分构建新的DataFrame。
所以,你的代码应该:
DataFramea)DataFrameDataFrame(或者,如果您觉得更容易的话,您可以连接而不是附加。)需要考虑的一件事是如何处理索引。如果您不使用它们,您可以通过使用或ignore_index=True上的关键字参数来忽略它们(= 根据需要创建新的) 。concatappend
了解更多信息:
http://pandas.pydata.org/pandas-docs/dev/merging.html
顺便说一句,您不一定希望None数据框中有任何 s 。如果您有数字数据,您希望拥有数字数据NaN。否则可能会发生奇怪的事情(最终会得到对象数组)。看:
http://pandas.pydata.org/pandas-docs/stable/missing_data.html
| 归档时间: |
|
| 查看次数: |
10515 次 |
| 最近记录: |