我有一个包含100列的非常大的CSV文件。为了说明我的问题,我将使用一个非常基本的示例。假设我们有一个CSV文件。invaluedf0975f0151976F42977d413978B6049792C0我想选择特定的列。importpandasdata=pandas.read_csv("ThisFile.csv")为了选择我使用的前两列data.ix[:,:2]为了选择不同的列,例如第2列和第4列。我该怎么办?还有另一种方法可以通过重写CSV文件来解决此问题。但这是一个巨大的文件;所以我正在避免这种方式。 最佳答案 这将选择第二列和
假设我有这个数组:A,B1,G2,X3,F4,Z5,I如果B列等于[X,Y或Z],则将A列替换为值“T”我已经找到了如何在同一列内更改值但不跨列更改值的方法,我们将不胜感激任何帮助。 最佳答案 你可以试试这个:importpandasaspddf=pd.DataFrame({'A':[1,2,3,4,5],'B':['G','X','F','Z','I']})df.ix[df.B.isin(['X','Y','Z']),'A']='T'printdf输出:AB01G1TX23F3TZ45I请记住使用ix或loc以避免在复制的切片上设
我有一个看起来像这样的数据框:Out[14]:impwealthindweight1618000034.2002138400037.8002634200039.71530115400044.3753142130044.37532121000045.29533106250045.29534187800046.6533587600046.6533692500053.476我想使用indweight中的频率权重计算列impwealth的加权中位数。我的伪代码如下所示:#Sort`impwealth`inascendingorderdf.sort('impwealth','inplace'=T
pandas中是否有等效的rolling_apply将函数应用于一系列的累积值而不是滚动值?我意识到cumsum、cumprod、cummax和cummin存在,但我想应用自定义函数. 最佳答案 您可以使用pd.expanding_apply.下面是一个简单的示例,它只真正计算累加和,但您可以为它编写任何您想要的函数。importpandasaspddf=pd.DataFrame({'data':[10*iforiinrange(0,10)]})defsum_(x):returnsum(x)df['example']=pd.expa
有没有直接的方法来计算pandas中数据框列的平均值,但不考虑值为零的数据?就像.mean()函数中的参数一样?目前正在这样做:x=df[df[A]!=0]x.mean() 最佳答案 这也取决于你数据中0的含义。如果这些确实是“0”值,那么您的方法很好如果“0”是未测量值的占位符(即“NaN”),那么替换所有出现的“0”可能更有意义首先是'NaN'。计算平均值然后默认排除NaN值(value)观。df=pd.DataFrame([1,0,2,3,0],columns=['a'])df=df.replace(0,np.NaN)df.m
有哪些方法可以合并时间戳不完全匹配的列?DF1:datestart_timeemployee_idsession_id01/01/201601/01/201606:03:137261824871631182DF2:datestart_timeemployee_idsession_id01/01/201601/01/201606:03:377261824871631182我可以在['date','employee_id','session_id']加入,但有时同一个员工会在同一日期有多个相同的session,这会导致重复。我可以删除发生这种情况的行,但如果这样做,我会丢失有效sessio
我有一个如下所示的数据框:a1b1c1a2b2c2a3...x1.21.31.2............y1.41.2...............z...我想要的是按第n列分组。换句话说,我想要一个包含所有as的数据框,一个包含bs,一个包含csa1a2a4x1.2......yz在另一个SO问题中,我看到可以执行df.iloc[::5,:],例如,获取每5个原始数据。我当然可以通过df.iloc[:,::3]获取c列,但它无法获取a和b。有什么想法吗? 最佳答案 切片列:df[df.columns[::2]]获取每第n列例子:I
我正在按操作进行简单分组,尝试比较分组均值。正如您在下面看到的,我从一个更大的数据框中选择了特定的列,所有缺失值都已从中删除。但是当我分组时,我丢失了几列:我从来没有在pandas上遇到过这种情况,而且我在堆栈溢出上也没有发现任何其他类似的东西。有没有人有任何见解? 最佳答案 我认为这是自动排除“讨厌的”列,描述了here.示例:df=pd.DataFrame({'C':{0:-0.91985400000000006,1:-0.042379,2:1.2476419999999999,3:-0.00992,4:0.290213,5:0
我总是对此感到惊讶:>data=DataFrame({'x':[1,2],'y':[2,1]})>data=data.sort('y')>dataxy121012>data['x'][0]1有没有办法让索引重新分配以适应新的排序? 最佳答案 就我而言,我很高兴排序不会丢弃索引信息。如果是这样,那么首先有一个索引而不是另一个列就没有多大意义了。如果您想将索引重置为一个范围,您可以:>>>dataxy121012>>>data.reset_index(drop=True)xy021112您可以根据需要重新分配或使用inplace=Tru
我使用pandas的.to_excel方法将DataFrame编写为Excel工作簿。当索引单元格合并时,这甚至对于多索引DataFrame也很有效。使用纯XlsxWriter时,我可以将格式应用于单元格,这也很好用。但是我找不到用pandas方法做同样事情的方法。只传递带有列名和样式的字典是最直观的。有什么办法吗? 最佳答案 Isthereanywaytodoso目前没有。没有像Pandas那样的格式化机制来格式化Excel输出(除了一些硬编码格式)。但是,即使是XlsxWriter目前也不支持在添加数据后格式化单元格。它在TOD