2 回答
TA贡献1829条经验 获得超13个赞
利用:
print (df)
0 1 2 3 4 5
0 a1 a2 a3 a4 a5 a6
1 b1 b2 b3 b4 b5 b6
按重复值的数量首先使用多个索引值,然后使用DataFrame.reindexwith np.arange:
N = 5
df.index = df.index * (N + 1)
df = df.reindex(np.arange(df.index.max() + N + 1))
print (df)
0 1 2 3 4 5
0 a1 a2 a3 a4 a5 a6
1 NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN
6 b1 b2 b3 b4 b5 b6
7 NaN NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN
10 NaN NaN NaN NaN NaN NaN
11 NaN NaN NaN NaN NaN NaN
编辑:
print (df)
0 1 2 3 4 5
0 a1 2 a3 a4 a5 6
1 b1 2 b3 b4 b5 6
N = 5
df.index = df.index * (N + 1)
df = df.reindex(np.arange(df.index.max() + N + 1))
print (df)
0 1 2 3 4 5
0 a1 2.0 a3 a4 a5 6.0
1 NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN
6 b1 2.0 b3 b4 b5 6.0
7 NaN NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN
10 NaN NaN NaN NaN NaN NaN
11 NaN NaN NaN NaN NaN NaN
def convert_int_with_NaNs(x):
try:
return x.astype('Int64')
except Exception:
return x
df = df.apply(convert_int_with_NaNs)
print (df)
0 1 2 3 4 5
0 a1 2 a3 a4 a5 6
1 NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN
6 b1 2 b3 b4 b5 6
7 NaN NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN
10 NaN NaN NaN NaN NaN NaN
11 NaN NaN NaN NaN NaN NaN
TA贡献1802条经验 获得超4个赞
为了添加一个空行,您可以使用以下指令:
your_dataframe = your_dataframe.append({} , ignore_index=True)
要执行请求的转换,因为我不知道您的数据是如何形成的,也不知道它是如何被索引的,我建议您创建一个新的空数据框。
对于您的每个初始数据框条目,您应该将其插入到您的新条目中,并按照我的描述追加 24 次空行。
这是有关如何执行它的示例:
## Use your own data instead
data = [['a1', 'a2', 'a3', 'a4', 'a5', 'a6'],['b1', 'b2', 'b3', 'b4', 'b5', 'b6']]
### Load the data in the dataframe
df = pd.DataFrame(data)
## Create the empty dataframe
df2 = pd.DataFrame()
## Use the initial dataframe length to perform the row iteration
length = len(df.index)
## For each rows of the initial dataframe
for i in range(0, length):
## Append the current row to the new dataframe
df2 = df2.append(df[i:i+1],ignore_index=True)
## Adding 24 empty rows
for j in range(0,25):
df2 = df2.append({},ignore_index=True)
因此,如果您的初始数据框类似于:
0 1 2 3 4 5
0 a1 a2 a3 a4 a5 a6
1 b1 b2 b3 b4 b5 b6
执行脚本后,它会输出:
0 1 2 3 4 5
0 a1 a2 a3 a4 a5 a6
1 NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN
...
25 NaN NaN NaN NaN NaN NaN
26 b1 b2 b3 b4 b5 b6
27 NaN NaN NaN NaN NaN NaN
...
49 NaN NaN NaN NaN NaN NaN
50 NaN NaN NaN NaN NaN NaN
51 NaN NaN NaN NaN NaN NaN
添加回答
举报