小编May*_*wal的帖子

dataframe to dict 使得一列是键,另一列是值

我有数据框

    ID   A   B   C
0   p    1   3   2
1   q    4   3   2
2   r    4   0   9  
Run Code Online (Sandbox Code Playgroud)

我想创建一个字典,其中 ID 是键,B 是值,所以它将是:

d["q"] = 3 , d["r"] = 0

这样做的最佳方法是什么?

它与假设的重复不同,因为我想要每个键的单个值而不是列表

python dictionary dataframe pandas

11
推荐指数
2
解决办法
1万
查看次数

Pandas:在 MultiIndex 数据帧中的每个索引之后添加一个空行

考虑以下df

              IA1  IA2  IA3
Name Subject               
Abc  DS        45   43   34
     DMS       43   23   45
     ADA       32   46   36
Bcd  BA        45   35   37
     EAD       23   45   12
     DS        23   35   43
Cdf  EAD       34   33   23
     ADA       12   34   25
Run Code Online (Sandbox Code Playgroud)

如何在每个Name索引后添加一个空行?

预期输出:

              IA1  IA2  IA3
Name Subject               
Abc  DS        45   43   34
     DMS       43   23   45
     ADA       32   46   36

Bcd  BA        45   35   37
     EAD       23   45   12
     DS        23   35   43

Cdf  EAD …
Run Code Online (Sandbox Code Playgroud)

python multi-index dataframe python-3.x pandas

10
推荐指数
1
解决办法
963
查看次数

如何在保留所有其他工作表的同时覆盖现有 Excel 工作表上的数据?

我有一个 Pandas 数据框df,我想将其覆盖到DataExcel 文件的工作表,同时保留所有其他工作表,因为其他工作表的公式链接到工作表Data

我使用了下面的代码,但它不会覆盖现有的工作表,它只是创建一个名称为的新工作表 Data 1

with pd.ExcelWriter(filename, engine="openpyxl", mode="a") as writer:
     df.to_excel(writer, sheet_name="Data")
Run Code Online (Sandbox Code Playgroud)

有没有办法覆盖现有的工作表?

python excel dataframe pandas

9
推荐指数
1
解决办法
2289
查看次数

如何获得列中列表的最大值和最小值?

鉴于此,我有一个如下的数据框:

import pandas as pd
import numpy as np

dict = {
        "A": [[1,2,3,4],[3],[2,8,4],[5,8]]
}

dt = pd.DataFrame(dict)
Run Code Online (Sandbox Code Playgroud)

我希望B 列中每一行的最大值最小值。我最喜欢的输出是:

              A    B
0  [1, 2, 3, 4]    [1,4]
1           [3]    [3,3] 
2     [2, 8, 4]    [2,8] 
3        [5, 8]    [5,8]
Run Code Online (Sandbox Code Playgroud)

我已经尝试过以下代码不起作用:

dt["B"] =[np.min(dt.A), np.max(dt.A)]
Run Code Online (Sandbox Code Playgroud)

python list pandas

9
推荐指数
3
解决办法
218
查看次数

Pandas - 在整个数据框中查找特定值

我有一个数据框,我想在所有列中搜索文本“Apple”的值。我知道如何用一列做到这一点,但如何将其应用于所有列?我想让它成为一个函数,以便下次我可以直接使用它来搜索其他日期帧中的其他值。

谢谢。

python dataframe python-3.x pandas

8
推荐指数
4
解决办法
5万
查看次数

要列出的 Pandas 列名称 - 正确的方法

我找不到任何关于以下三种获取列名称列表的方法之一是否优于其他方法的资源。第一个也是最简单的,似乎适用于我当前的示例。我有什么理由不应该使用它吗?

>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.random.rand(5,3))
>>> df.columns
RangeIndex(start=0, stop=3, step=1)



>>> list(df.columns)
[0, 1, 2]
>>> df.columns.get_values().tolist()
[0, 1, 2]
>>> list(df.columns.get_values())
[0, 1, 2]
Run Code Online (Sandbox Code Playgroud)

更新

性能 - 相关答案在这里:/sf/answers/1906572391/

python dataframe pandas

8
推荐指数
1
解决办法
1万
查看次数

熊猫:浮点数的差异

我在这里遇到了一个奇怪的问题。我有一个df如下数据框:

In [1561]: df
Out[1561]: 
      A     B
0  16.3  1.10
1  23.2  1.33
2  10.7 -0.43
3   5.7 -2.01
4   5.4 -1.86
5  23.5  3.14
Run Code Online (Sandbox Code Playgroud)

我正在比较每两列相邻的行,A并将差异存储在新列中:

In [1562]: df['new_diff'] = (df.A - df.A.shift(-1)).fillna(0)
In [1563]: df
Out[1563]: 
      A     B  new_diff
0  16.3  1.10      -6.9
1  23.2  1.33      12.5
2  10.7 -0.43       5.0
3   5.7 -2.01       0.3
4   5.4 -1.86     -18.1
5  23.5  3.14       0.0
Run Code Online (Sandbox Code Playgroud)

当我进行检查以找出new_diffis 在的行时5.0,我得到一个空的数据框。但是,当我检查< 5.0或时,它可以正常工作> 5.0。见下文: …

python python-3.x pandas

6
推荐指数
1
解决办法
104
查看次数

有没有办法抓取一组的最后一个项目

说我有一个 DataFrame

data = {'Column 1':     [ 1, 1, 2, 2, 2, 3, 4, 4, 4, 4], 
        'Column 2':     [ 1, 2, 1, 2, 3, 1, 1, 2, 3, 4], 
        'Column 3':     [ 1, 2, 1, 4, 3, 6, 1, 2, 7, 5]}

df = pd.DataFrame(data=data)
Run Code Online (Sandbox Code Playgroud)

我想获取第 2、5、6 和 10 行,因为它们是第 1 列中每个值的最后一行。假设第 1 列是一个 ID,第 2 列表示该 ID 的编号。我需要它为第 1 列中的每个数字选择第 2 列中的最大数字,并保留第 3 列而不更改第 2 列和第 3 对。

所以我从

1  1  1
1  2  2
2  1  1 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

6
推荐指数
1
解决办法
103
查看次数

Pandas:使用 `loc` 更改为 `int` 将一行布尔值附加到 df

考虑df

In [2098]: df = pd.DataFrame({'a': [1,2], 'b':[3,4]})

In [2099]: df
Out[2099]: 
   a  b
0  1  3
1  2  4
Run Code Online (Sandbox Code Playgroud)

现在,我尝试将一个list值附加到df

In [2102]: df.loc[2] = [3, 4]

In [2103]: df
Out[2103]: 
   a  b
0  1  3
1  2  4
2  3  4
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都很好。

但是现在当我尝试添加带有布尔值列表的行时,它会将其转换为int

In [2104]: df.loc[3] = [True, False]

In [2105]: df
Out[2105]: 
   a  b
0  1  3
1  2  4
2  3  4
3  1  0
Run Code Online (Sandbox Code Playgroud)

我知道我可以将其转换dfstr …

python boolean dataframe pandas

6
推荐指数
1
解决办法
349
查看次数

使用 Pandas 向 csv 文件添加独立标题

我有一个 csv 数据框,除了列之外,我想用一个额外的标题保存它。熊猫必须在没有标题的情况下读取我的文件:

pd.read_csv('file.csv', header=2)
Run Code Online (Sandbox Code Playgroud)

编辑 csv 文件后,我想用新的标题保存它,例如它应该是这样的:

no rows = 4
no cols = 3        
index, col1, col2, col3
0, A, B, C
1, D, E, F
2, G, H, I
3, J, L, M
Run Code Online (Sandbox Code Playgroud)

但是to_csv根据文档(https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html),函数中的标题参数似乎依赖于作为别名的列

标题会将每一行算作一个单元格,因此是 1col x 2row df。我想过附加这两个,但由于列不相等,它不起作用。有没有一种简单的方法可以将独立的标题添加到 csv 文件?

我找不到有关此问题的帖子,任何帮助将不胜感激!

python csv header dataframe pandas

5
推荐指数
1
解决办法
903
查看次数

标签 统计

pandas ×10

python ×10

dataframe ×8

python-3.x ×3

boolean ×1

csv ×1

dictionary ×1

excel ×1

header ×1

list ×1

multi-index ×1