当前位置: 首页 > 面试题库 >

pandas数据框总行

尹俊贤
2023-03-14
问题内容

我有一个数据框,类似:

     foo  bar  qux
0    a    1    3.14
1    b    3    2.72
2    c    2    1.62
3    d    9    1.41
4    e    3    0.58

我想在数据框的末尾添加一个“总计”行:

     foo  bar  qux
0    a    1    3.14
1    b    3    2.72
2    c    2    1.62
3    d    9    1.41
4    e    3    0.58
5    tot  15   9.47

我尝试使用该sum命令,但最终得到一个Series,尽管可以将其转换回Dataframe,但它不维护数据类型:

tot_row = pd.DataFrame(df.sum()).T
tot_row['foo'] = 'tot'
tot_row.dtypes:
     foo    object
     bar    object
     qux    object

我想维护原始数据帧中的数据类型,因为我需要对总行应用其他操作,例如:

baz = 2*tot_row['qux'] + 3*tot_row['bar']

问题答案:

将总计行附加到

df.append(df.sum(numeric_only=True), ignore_index=True)

仅当您有一列字符串或对象时,才需要进行转换。

这是一个脆弱的解决方案,因此我建议仍然坚持对数据框进行操作。例如。

baz = 2*df['qux'].sum() + 3*df['bar'].sum()


 类似资料:
  • 问题内容: 我想计算给定列中的运行总和(当然,不使用循环)。需要注意的是,我还有另一列指定何时将运行总和重置为该行中存在的值。最好通过以下示例进行说明: 是我要计算的值。 问题答案: 您可以使用2次:

  • 问题内容: 我有一个带有几列的Python pandas数据框。现在,我想将所有值复制到一个列中,以获取一个values_count结果alle值。最后,我需要string1,string2,n的总数。最好的方法是什么? 问题答案: 如果性能是一个问题,请尝试: 或者它变成一个再使用 对于具有少量列的较大(长)DataFrame,循环可能比堆栈快: 此外,还有一个numpy解决方案: 小 长

  • 问题内容: 这应该很容易,但是以某种方式我找不到有效的解决方案。 我有一个熊猫数据框,看起来像这样: 我想按col1和col2分组并获得col3和col4。 由于无法汇总数据,因此可以删除。 这是输出的样子。我很感兴趣,同时具有和中产生的数据帧。是否和是否属于索引并不重要。 这是我尝试过的: 但是,这只会返回的汇总结果。 我在这里迷路了。我发现的每个示例仅汇总一列,显然不会发生此问题。 问题答案:

  • 问题内容: 我有一个重复的行的DataFrame。我想获得一个具有唯一索引且没有重复项的DataFrame。可以丢弃重复的值。这可能吗?做完了吗? 问题答案: In [29]: df.drop_duplicates() Out[29]: b c 1 2 3 3 4 0 7 5 9

  • 问题内容: 我想将稀疏矩阵(156060x11780)转换为数据帧,但出现内存错误,这是我的代码 我有一个问题 。我该如何解决? 问题答案: 尝试这个: 更新: 对于Pandas 0.20+,我们可以直接从稀疏数组构造:

  • 问题内容: Python pandas具有pct_change函数,可用于计算数据帧中股票价格的回报: 我正在使用以下代码获取对数返回值,但它给出的值与pct.change()函数完全相同: 问题答案: 这是一种使用来计算日志返回的方法。结果与所计算的总收益相似但不相同。您可以上传示例数据的副本(Dropbox共享链接)以重现您看到的不一致之处吗?