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
添加回答
舉報