我正试图在不丢失最后一行的情况下移动。csv中的某些行。假设您使用df.shift(1)
,它将返回移位的数据帧,删除最后一行数据。我想要的是在不丢失最后一行数据的情况下移位。
原始(数据):
example1,example1
example2,example2
example3,example3
在data.shift(1)
之后发生了什么:
NaN,NaN
example1,example1
example2,example2
我想要什么:
NaN,NaN
example1,example1
example2,example2
example3,example3
也许在末尾创建一行填充NaN
会解决这个问题?(我不知道如何用NaN
填充单元格)。
import pandas
data = pandas.read_csv('path/test.csv', header=False,
yes = data.iloc[2:3].shift(1)
print(yes)
输出:
NaN,NaN
example2,example2
开头:
0 1
0 example1 example1
1 example2 example2
2 example3 example3
做:
import pandas as pd
import numpy as np
# Version 1:
df.index += 1
df.loc[0] = np.nan
df = df.sort_index()
# Version 2:
df.loc[-1] = np.nan
df = df.sort_index().reset_index(drop=True)
输出:
0 1
0 NaN NaN
1 example1 example1
2 example2 example2
3 example3 example3
采用添加一行的方法:
df = pd.DataFrame([['example1','example1'],['example2','example2'],['example3','example3']])
row = ['blank','blank']
df.loc[len(df)] = row
给:
0 1
0 example1 example1
1 example2 example2
2 example3 example3
3 blank blank