草庐IT

sample_dataframe

全部标签

python - 如何从 Pandas DataFrame 的每一行中选择特定列?

我有一个这种格式的DataFrame:abc01231456278931011124131415和一个像这样的数组,带有列名:['a','a','b','c','b']我希望提取一组数据,每行一个值。列名数组指定我想要从每一行中提取哪一列。在这里,结果将是:[1,4,8,12,14]这是否可以作为Pandas的单个命令,或者我需要迭代吗?我尝试使用索引i=pd.Index(['a','a','b','c','b'])i.choose(df)但我遇到了段错误,由于缺少文档,我无法诊断。 最佳答案 你可以使用lookup,例如>>>i=

python - 为什么 Pandas 默认遍历 DataFrame 列?

试图理解Pandas某些功能背后的设计原理。如果我有一个3560行18列的DataFrame,那么len(frame)是3560,但是len([aforainframe])是18岁。也许这对来自R的人来说很自然;对我来说,它感觉不是很“Pythonic”。有没有介绍Pandas的底层设计原理? 最佳答案 DataFrame主要是一种基于列的数据结构。在底层,DataFrame中的数据存储在block中。粗略地说,每个数据类型都有一个block。每一列都有一个数据类型。因此,可以通过从单个block中选择适当的列来访问列。相比之下,选

python - 在 pandas Series 或 DataFrame 中查找最后一个真值的索引

我正在尝试查找pandasbool系列中最后一个True值的索引。我当前的代码如下所示。是否有更快或更清洁的方法来执行此操作?importnumpyasnpimportpandasaspdimportstringindex=np.random.choice(list(string.ascii_lowercase),size=1000)df=pd.DataFrame(np.random.randn(1000,2),index=index)s=pd.Series(np.random.choice([True,False],size=1000),index=index)last_true_i

python - "DataFrame"对象没有属性 'reshape'

我想在没有标题的CSV文件中reshape一些数据,但我一直收到此错误AttributeError:'DataFrame'objecthasnoattribute'reshape'这是我的脚本,我只想reshape第二列中的数据importpandasaspddf=pd.read_csv("test.csv",header=None,usecols=[1])start=0foriinrange(0,len(df.index)):if(i+1)%10==0:result=df.iloc[start:i+1].reshape(2,5)start=i+1printresult这是CSV1,5

python - Pandas DataFrame,如何删除总和为 0 的所有列和行

我有一个dataFrame,其行和列的总和为0。ABCD0110110000210013010041101最终结果应该是ABD0111210130104111请注意,只有零的行和列已被删除。 最佳答案 df.loc[row_indexer,column_indexer]允许您使用bool掩码选择行和列:In[88]:df.loc[(df.sum(axis=1)!=0),(df.sum(axis=0)!=0)]Out[88]:ABD0111210130104111[4rowsx3columns]df.sum(axis=1)!=0当且仅

python - random.sample() 每次都返回相同的随机序列?

我正在使用python的random.sample(population,k)函数从列表中生成一组随机值,​​以创建该列表的新排列。问题是每次它运行一个循环时,它都会生成完全相同的随机序列。为什么是这样?我什至使用了random.seed(i)这样i变量(每次循环都会改变)每次都会为它设置不同的值。还是一样的顺序。什么给!@下面是我的使用方法:definitialBuild(self):alphabet=self.alphabetforiinrange(self.length):value=random.sample(alphabet,1)alphabet.remove(value[0

python - 在 Pandas DataFrame 中分隔值高于特定阈值的连续区域

我有一个索引和值介于0和1之间的PandasDataframe,如下所示:60.04703370.04765080.05406790.064767100.073183110.077950我想检索超过某个阈值(例如0.5)的超过5个连续值的区域的起点和终点的元组。这样我就会有这样的东西:[(150,185),(632,680),(1500,1870)]第一个元组属于从索引150开始的区域,在行中有35个值都在0.5以上,并以索引185结束(不包含)。我开始像这样只过滤0.5以上的值df=df[df['values']>=0.5]现在我有这样的值(value)观:6320.54570063

python - 将大型 Pandas Dataframes 分块写入 CSV 文件

如何将大型数据文件分block写入CSV文件?我有一组大型数据文件(100万行x20列)。但是,我只对数据文件的5列左右感兴​​趣。我想通过仅使用感兴趣的列制作这些文件的副本来简化操作,这样我就可以使用较小的文件进行后期处理。所以我打算将文件读入数据框,然后写入csv文件。我一直在研究将大数据文件分block读取到数据帧中。但是,我还没有找到任何关于如何将数据分block写入csv文件的信息。这是我现在正在尝试的,但这不会附加csv文件:withopen(os.path.join(folder,filename),'r')assrc:df=pd.read_csv(src,sep='\t

python - 使用距离矩阵计算 Pandas Dataframe 中行之间的距离

我有以下PandasDataFrame:In[31]:importpandasaspdsample=pd.DataFrame({'Sym1':['a','a','a','d'],'Sym2':['a','c','b','b'],'Sym3':['a','c','b','d'],'Sym4':['b','b','b','a']},index=['Item1','Item2','Item3','Item4'])In[32]:print(sample)Out[32]:Sym1Sym2Sym3Sym4Item1aaabItem2accbItem3abbbItem4dbda我想根据这个距离矩阵找

python - 如何使用 Pandas 将二维表 (DataFrame) 反转为一维列表?

我正在Python/Pandas中寻找将二维表反转为一维列表的技巧。我通常利用Excel函数来执行此操作,但我相信有一种智能的Python方法来执行此操作。步骤Excel方式的更多细节:http://www.extendoffice.com/documents/excel/2461-excel-reverse-pivot-table.html 最佳答案 此类操作也可以使用pd.melt完成,它取消了DataFrame的透视。如果DataFramedf看起来像这样:rowlabelsTueWedThuSatSunFriMon0Appl