我如何使用pandas.shift()而不丢失数据?



我正试图在不丢失最后一行的情况下移动。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

相关内容

  • 没有找到相关文章

最新更新