Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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 删除特定于数据帧的数据_Python_Pandas_Dataframe - Fatal编程技术网

Python 删除特定于数据帧的数据

Python 删除特定于数据帧的数据,python,pandas,dataframe,Python,Pandas,Dataframe,我加载了csv文件,得到了一个列表形式的特定列。 名单的长度是6871。 为了缩短列表的长度,我想删除列表的其余部分,只留下列表的第10个元素 import numpy as np import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv('data_science/pro_data.csv', sep='\t') layer_list = data['z'].drop_duplicates() lay

我加载了csv文件,得到了一个列表形式的特定列。 名单的长度是6871。 为了缩短列表的长度,我想删除列表的其余部分,只留下列表的第10个元素

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('data_science/pro_data.csv', sep='\t')

layer_list = data['z'].drop_duplicates()   
layer_list = np.array(layer_list.tolist())
print(layer_list)
print(type(layer_list))
print(len(layer_list))

for idx in range(len(layer_list):            
    if not(idx % 10 == 0):
        layer_list = np.delete(layer_list, idx)

print(len(layer_list))
清单的内容包括:
[255.092255.49255.622…432.091432.341432.591]


请告诉我如何修复此错误,否则

我认为您的代码使此问题变得更加复杂。不需要尝试删除循环中的行。您只需创建一个间距为10的范围,然后选择所需的图元

此外,任何pandas系列都会公开具有
值的基础numpy数组,因此无需先转换为列表,然后再转换为numpy数组

idx = np.arange(10, len(data) // 10 * 10, step=10)
s = data['z'].drop_duplicates().iloc[idx]

如果您需要列表中10的倍数

l = np.arange(21)
print(list) # [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20]
l[10::10] # array([10, 20])

我们将从第10个元素对列表进行切片,然后提取每个第10个元素。

从列表中,您是否只需要第10个元素或10的倍数的元素,即索引10处的元素,20等。如果你能提供输入和输出,那就太好了。我不需要第10行。这是假设我们必须减少数据的数量,我只需要随机抽取10倍的行数。谢谢!解决这个问题容易多了!非常感谢。我能提到解决问题。
idx = np.arange(10, len(data) // 10 * 10, step=10)
s = data['z'].drop_duplicates().iloc[idx]
l = np.arange(21)
print(list) # [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20]
l[10::10] # array([10, 20])