我试图在不丢失最后一行的情况下向下移动.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
发布于 2022-06-25 16:24:47
首先:
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
发布于 2022-06-25 15:39:37
采用添加一行的方法:
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
https://stackoverflow.com/questions/72757931
复制相似问题