jjzjj

DataFrame

全部标签

python - 如何使用 Pandas 选择所有非 NaN 列和非 NaN 最后一列?

如果标题有点困惑,请原谅。假设我有test.h5。以下是使用df.read_hdf('test.h5','testdata')读取此文件的结果01234560123444111321NaNNaNNaN112234113672132900321211254332145NaNNaN我想选择最后一个非Nan列。我的预期结果是这样的03211900245我还想选择除最后一个非NaN列之外的所有列。我的预期结果大概是这样的。它可能在numpy数组中,但我还没有找到任何解决方案。012345601234441111122341136721323212112543321我在线搜索并找到df.iloc

python - 获取 Dataframe Pandas 中最高值的列和行索引

我想知道是否有办法找到数据框中最大值的位置(列和行索引)。因此,例如,如果我的数据框如下所示:ABCDE01009112618010671591220671562331251510584732872251如何使用Pandas获得如下所示的结果:[0,'A']? 最佳答案 使用np.argmaxNumPy的argmax可以提供帮助:>>>df.stack().index[np.argmax(df.values)](0,'A')步骤df.values是一个二维NumPy数组:>>>df.valuesarray([[100,9,1,12,

python - 计算多列python中的字符串实例

我有以下简单的数据框importpandasaspddf=pd.DataFrame({'column_a':['a','b','c','d','e'],'column_b':['b','x','y','c','z']})column_acolumn_b0ab1bx2cy3dc4ez我希望显示出现在两列中的字符串:result=("b","c")谢谢 最佳答案 交叉路口这概括了任意数量的列。set.intersection(*map(set,map(df.get,df))){'b','c'}

python - 使用 pandas Grouper 按十年开始对 DataFrame 进行分组

我有一个从01-01-1973到12-31-2014的日常观察数据框。一直在使用PandasGrouper,到目前为止,每个频率的一切都运行良好:我想按70年代、80年代、90年代等年代分组。我试着这样做importpandasaspddf.groupby(pd.Grouper(freq='10Y')).mean()但是,这会将它们分组为73-83、83-93等。 最佳答案 pd.cut还可以指定具有指定开始年份的常规频率。importpandasaspddfdateval01970-01-0100:01:18111979-12-3

python - Pandas Dataframe 中的 MultiIndex Groupby

我有一个数据集,其中包含按年份划分的国家和经济指标统计数据,组织方式如下:CountryMetric2011201220132014USAGDP7402USAPop.2303GBGDP8707GBPop.2600FRGDP5001FRPop.1105我如何在pandas中使用MultiIndex创建一个数据框,该数据框仅按年份显示每个国家/地区的GDP?我试过:df=data.groupby(['Country','Metric'])但它没有正常工作。 最佳答案 在这种情况下,您实际上不需要groupby。您也没有MultiInde

python - 将 Pandas DataFrame 转换为 Spark DataFrame

我之前问过一个关于如何Convertscipysparsematrixtopyspark.sql.dataframe.DataFrame的问题,并在阅读提供的答案以及thisarticle后取得了一些进展.我最终找到了以下用于将scipy.sparse.csc_matrix转换为pandas数据帧的代码:df=pd.DataFrame(csc_mat.todense()).to_sparse(fill_value=0)df.columns=header然后我尝试使用建议的语法将pandas数据帧转换为spark数据帧:spark_df=sqlContext.createDataFram

python - DataFrame的一列为字符串时设置WithCopyWarning

我收到以下代码的SettingWithCopyWarning:rain=DataFrame({'data':['1','2','3','4'],'value':[1,-1,1,1]})rain.value[rain.value虽然我没有收到警告rain=DataFrame({'data':[1,2,3,4],'value':[1,-1,1,1]})rain.value[rain.value唯一的区别是“数据”列在第一个DataFrame中是字符串,在第二个DataFrame中是数字。难道我做错了什么?有没有不同的(首选?)方法来做到这一点?至少不应该始终如一地应用警告吗?

python - 将 python pandas DataFrame 转换为 R dataframe 以与 rpy2 一起使用的问题

我无法将Python中的pandasDataFrame转换为R对象,以便将来使用rpy2在R中使用。新的pandas版本0.8.0(几周前发布)具有将pandasDataFrames转换为RDataFrames的功能。问题在于转换我的pandasDataFrame的第一列,它由pythondatetime对象组成(在时间序列中连续)。转换为R数据帧会返回日期和时间的StrVector,而不是我认为称为“POSIXct”对象的R日期时间类型对象的向量。我知道使用命令“as.POSIXct('yyyy-mm-ddhh:mm:ss')”将返回类型的字符串转换为POSIXct的命令。不幸的是,

python - pandas groupby 后缺少列

我有一个pandas数据框df。我将它按3列分组,然后计算结果。当我这样做时,我丢失了一些信息,特别是name列。此列与desk_id列1:1映射。无论如何都将两者都包含在我的最终数据框中?这是数据框:shift_idshift_start_timeshift_end_timenameend_timedesk_idshift_hour0374230642014-01-1708:00:002014-01-1712:00:00AdamScott2014-01-1710:16:41.0400001555798721374230642014-01-1708:00:002014-01-1712:

python - pandas.DataFrame.equals 的契约(Contract)

我有一个函数的简单测试用例,它返回一个可能包含NaN的df。我正在测试输出和预期输出是否相等。>>>outputOut[1]:rttsttttct020483009011409690130120702651[3rowsx5columns]>>>expectedOut[2]:rttsttttct020483009011409690130120702651[3rowsx5columns]>>>output==expectedOut[3]:rttsttttct0TrueTrueTrueTrueTrue1TrueTrueTrueTrueTrue2TrueTrueTrueTrueTrue但是,由