草庐IT

Dataframe

全部标签

python - 如何通过混合 iloc 和 loc 在 pandas DataFrame 中设置值

假设我想要一个函数来更改DataFrame给定行号中命名列的值。一种选择是找到列的位置并使用iloc,就像这样:defChangeValue(df,rowNumber,fieldName,newValue):columnNumber=df.columns.get_loc(fieldName)df.iloc[rowNumber,columnNumber]=newValue但我想知道是否有一种方法可以一次性使用iloc和loc的魔力,而跳过手动转换。有什么想法吗? 最佳答案 我建议将iloc与Index.get_loc方法结合使用。例如

python - 向量化 pandas.DataFrame 的整合

我有一个力-位移数据的DataFrame。位移数组已设置为DataFrame索引,列是我针对不同测试的各种力曲线。如何计算完成的功(即“曲线下的面积”)?我看了numpy.trapz这似乎可以满足我的需要,但我认为我可以避免像这样循环遍历每一列:importnumpyasnpimportpandasaspdforces=pd.read_csv(...)work_done={}forcolinforces.columns:work_done[col]=np.trapz(forces.loc[col],forces.index))我希望创建一个新的曲线下区域的DataFrame而不是dic

python - 类型注释 Pandas DataFrame

如果函数或方法返回PandasDataFrame,您如何记录列名和列类型?有没有办法在Python的内置类型注释中执行此操作,还是您只使用文档字符串?如果您只使用文档字符串,您如何格式化它们以尽可能简洁? 最佳答案 文档字符串格式我使用numpydocstring公约作为基础。如果函数的输入参数或返回参数是具有预定列的pandas数据框,那么我将添加一个reStructuredText样式table带有参数描述的列描述。例如:defrandom_dataframe(no_rows):"""Returndataframewithran

python - sql select group by a having count(1) > 1 equivalent in python pandas?

我很难过滤pandas中的groupby项。我想做selectemail,count(1)ascntfromcustomersgroupbyemailhavingcount(email)>1orderbycntdesc我做到了customers.groupby('Email')['CustomerID'].size()它正确地给出了电子邮件列表及其各自的计数,但我无法实现havingcount(email)>1部分。email_cnt[email_cnt.size>1]返回1email_cnt=customers.groupby('Email')email_dup=email_cnt.

python - 没有日期时间索引的 pandas dataframe 每天重新采样

我在以下形式的pandas中有一个数据框:timestampslight72004-02-2800:58:45150.88262004-02-2800:59:45143.52342004-02-2801:00:45150.88422004-02-2801:01:15150.88592004-02-2801:02:15150.88这里注意索引不是timestamps列。但我想重新采样(或以某种方式对数据进行分类)以反射(reflect)每分钟、每小时、每天等光柱的平均值。我研究了pandas提供的resample方法,它需要数据帧具有该方法工作的数据时间索引(除非我误解了这一点)。所以我

python - 遍历数据框并选择空值

我正在尝试遍历一个数据框,该数据框的列=[myCol]具有空值。我能够很好地遍历数据框,但是当我指定我只想查看空值时,我得到了一个错误。最终目标是我想将一个值强加到Null字段中,这就是为什么我要迭代以确定哪些是第一个。forindex,rowindf.iterrows():if(row['myCol'].isnull()):print('true')AttributeError:'str'objecthasnoattribute'isnull'我尝试指定列='None',因为这是我在打印数据帧的迭代时看到的值。仍然没有运气:forindex,rowindf.iterrows():if

python - 使用 matplotlib colormap 和 pandas dataframe.plot 函数

我正在尝试将matplotlib.colormap对象与pandas.plot函数结合使用:importpandasaspdimportmatplotlib.pyplotaspltimportmatplotlib.cmascmdf=pd.DataFrame({'days':[172,200,400,600]})cmap=cm.get_cmap('RdYlGn')df['days'].plot(kind='barh',colormap=cmap)plt.show()我知道我应该以某种方式告诉颜色图它被馈送的值的范围,但是我不知道在使用pandas.p​​lot()函数时该怎么做,因为这个

python - Pandas.DataFrame.rename 方法中的参数 "index"是什么?

PandasDataFrame有一个重命名方法,它接受一个名为“index”的参数。看不懂文档中对参数的描述:DataFrame.rename具体来说,我像文档网页上的示例一样使用它:df.rename(index=str,columns={"A":"a","B":"c"})我理解结果,但我不明白为什么我们设置index=str。index参数有什么用?为什么示例设置index=str? 最佳答案 index参数用于重命名索引,以df为例:df.index#RangeIndex(start=0,stop=3,step=1)df.re

python - 检查 DataFrame 或 ndrray 是否包含数字

我坚持了几个小时:我有一个包含电子邮件地址列表的DataFrame,我想从这些电子邮件地址中检查邮件中是否包含数字I.E.roberto123@example.com,如果是,我希望将此数字附加到数组中:我已经尝试过使用DataFrame和ndarraywothnumpy,但它不起作用。这就是我想要做的:mail_addresses=pd.DataFrame(customers_df.iloc[:,0].values)mail_addresses=mail_addresses.dropna(axis=0,how='all')mail_addresses_toArray=mail_add

python - Pandas groupby 类别,评级,从每个类别中获得最高值(value)?

关于SO的第一个问题,对pandas来说非常新,而且在术语上仍然有点不稳定:我试图找出数据帧上正确的语法/操作顺序,以便能够按B列分组,找到最大值(或最小)C列中每个组的对应值,并检索A列中该组的对应值。假设这是我的数据框:nametypevotesbobdog10petecat8fluffydog5maxcat9使用df.groupby('type').votes.agg('max')返回:dog10cat9到目前为止,还不错。但是,我想弄清楚如何返回:dog10bobcat9max我已经得到了df.groupby(['type','votes']).name.agg('max'),