Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:从dataframe的一列中删除除存储在第一行的最后一个值之外的所有数据_Python_Pandas_Numpy_Dataframe - Fatal编程技术网

Python:从dataframe的一列中删除除存储在第一行的最后一个值之外的所有数据

Python:从dataframe的一列中删除除存储在第一行的最后一个值之外的所有数据,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,假设我有一个简单的数据帧 data1 = [12,34,465,678,896] df1 = pd.DataFrame(data1, columns= ['Data']) print(df1) Data 0 12 1 34 2 465 3 678 4 896 我想删除除第一行中要保存的列的最后一个值以外的所有数据。它可以是一个包含数千行的列。因此,我想知道结果: Data 0 896 1 2 3 4 最简单的功能是什么 谢谢您可以

假设我有一个简单的数据帧

data1 = [12,34,465,678,896]
df1 = pd.DataFrame(data1, columns= ['Data'])
print(df1)

   Data
0    12
1    34
2   465
3   678
4   896
我想删除除第一行中要保存的列的最后一个值以外的所有数据。它可以是一个包含数千行的列。因此,我想知道结果:

  Data
0  896
1   
2   
3   
4   
最简单的功能是什么

谢谢

您可以使用iloc,其中0是数据列的第一行,-1是最后一行,1:是除第一行以外的每一行:

df1['Data'].iloc[0] = df1['Data'].iloc[-1]
df1['Data'].iloc[1:] = ''
df1
Out[1]: 
  Data
0  896
1     
2     
3     
4     
您可以使用iloc,其中0是数据列的第一行,-1是最后一行,1:是除第一行以外的每一行:

df1['Data'].iloc[0] = df1['Data'].iloc[-1]
df1['Data'].iloc[1:] = ''
df1
Out[1]: 
  Data
0  896
1     
2     
3     
4     
使用loc访问器。使用python x,y=a,b来分配值

df1.loc[0,'Data'],df1.loc[1::,'Data']=df1['Data'].values[-1],''

 Data
0  896
1     
2     
3     
4     
使用loc访问器。使用python x,y=a,b来分配值

df1.loc[0,'Data'],df1.loc[1::,'Data']=df1['Data'].values[-1],''

 Data
0  896
1     
2     
3     
4     
您可以使用python列表的方法,如下所示:

my_data = df1['Data'].to_list() # Get list from Serie
my_data.reverse() # Reverse order.
my_data[1:] = [""]*len(my_data[1:]) # Fill with spaces from the second item.
df1['Data'] = my_data
输出:

    Data
0   896
1   
2   
3   
4   
您可以使用python列表的方法,如下所示:

my_data = df1['Data'].to_list() # Get list from Serie
my_data.reverse() # Reverse order.
my_data[1:] = [""]*len(my_data[1:]) # Fill with spaces from the second item.
df1['Data'] = my_data
输出:

    Data
0   896
1   
2   
3   
4