小编Tip*_*ena的帖子

删除 Pandas DataFrame 中值不是 NaN 的所有行

我可以使用此行删除列中带有 nan 的所有行:

df2 = df.dropna(subset=['columnA'])
Run Code Online (Sandbox Code Playgroud)

如何删除所有值不是NaN 的行?

python pandas

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

连接两个 Pandas DataFrame 同时保持索引顺序

我试图连接两个 DataFrame,生成的 DataFrame 按原始两个 DataFrame 的顺序保留索引。例如:

df = pd.DataFrame({'Houses':[10,20,30,40,50], 'Cities':[3,4,7,6,1]}, index = [1,2,4,6,8])


df2 = pd.DataFrame({'Houses':[15,25,35,45,55], 'Cities':[1,8,11,14,4]}, index = [0,3,5,7,9])
Run Code Online (Sandbox Code Playgroud)

使用pd.concat([df, df2])只是将 df2 附加到 df1 的末尾。我试图将它们连接起来以产生正确的索引顺序(0 到 9)。

python sorting indexing concatenation pandas

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

Matplotlib - 尽管位于 font_manager 中,但当前字体中缺少字形 8722

要检查所有可用的 matplotlib 字体,我按照此处的说明进行操作:

http://jonathansoma.com/lede/data-studio/matplotlib/list-all-fonts-available-in-matplotlib-plus-samples/

“Phetsarath OT”出现在结果列表中:

在此输入图像描述

当我尝试plt.rcParams["font.family"] = "Phetsarath OT"生成的绘图包含正确的 Phetsarath OT 字体时,但会触发错误消息:

/matplotlib/backends/backend_agg.py:211: RuntimeWarning: Glyph 8722 missing from current font.
  font.set_text(s, 0.0, flags=flags)
/matplotlib/backends/backend_agg.py:180: RuntimeWarning: Glyph 8722 missing from current font.
  font.set_text(s, 0, flags=flags)
Run Code Online (Sandbox Code Playgroud)

无论如何我可以抑制这个错误吗?

python matplotlib

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

Matplotlib - 在定性颜色图中选择颜色

我正在绘制许多散点图,例如:

import matplotlib.pyplot as plt
import numpy as np

N = 50

x = np.random.rand(N)
y = np.random.rand(N)

plt.scatter(x, y, c='blue')

x = np.random.rand(N)
y = np.random.rand(N)

plt.scatter(x, y, c='green')

x = np.random.rand(N)
y = np.random.rand(N)

plt.scatter(x, y, c='goldenrod')

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我正在为 >10 个散点图执行此操作,并且我想从定性颜色图中选择颜色以获得颜色平衡和分离,例如:

在此处输入图片说明

做这个的最好方式是什么?

python matplotlib

4
推荐指数
1
解决办法
3903
查看次数

Groupby 并为组成员分配唯一 ID

我有一些数据帧:

df = pd.DataFrame({'fruit': ['apple', 'apple', 'apple', 'apple', 'orange', 'orange', 'orange', 'orange', 'orange', 'orange'], 
                   'distance': [10, 0, 20, 40, 20, 50 ,70, 90, 110, 130]})
df

fruit   distance
0   apple   10
1   apple   0
2   apple   20
3   apple   40
4   orange  20
5   orange  50
6   orange  70
7   orange  90
8   orange  110
9   orange  130
Run Code Online (Sandbox Code Playgroud)

我想为每个按距离排序的组成员添加一个唯一 ID,如下所示:

    fruit   distance    ID
0   apple   10  apple_2
1   apple   0   apple_1
2   apple   20  apple_3
3   apple   40  apple_4
4 …
Run Code Online (Sandbox Code Playgroud)

python pandas pandas-groupby

4
推荐指数
1
解决办法
153
查看次数

Groupby 并选择每个组的第一、第二和第四个成员?

相关:pandas dataframe groupby 并获取第 n 行

我可以使用该groupby方法并选择前 N 个组成员:

df.groupby('columnA').head(N) 
Run Code Online (Sandbox Code Playgroud)

但是如果我想要每组的第一、第二和第四个成员怎么办?

python group-by pandas pandas-groupby

3
推荐指数
1
解决办法
1540
查看次数

带有seaborn clustermap的下三角掩码

使用seaborn的聚类图进行分层聚类时如何掩盖下三角形?

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

#pearson coefficients
corr = np.corrcoef(np.random.randn(10, 200))

#lower triangle
mask = np.tril(np.ones_like(corr))
fig, ax = plt.subplots(figsize=(6,6))

#heatmap works as expected
sns.heatmap(corr, cmap="Blues", mask=mask, cbar=False)

#clustermap not so much
sns.clustermap(corr, cmap="Blues", mask=mask, figsize=(6,6))
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python matplotlib seaborn

3
推荐指数
1
解决办法
1248
查看次数

Pandas - 当字符串匹配时选择两个值之间的所有行

我有两个数据帧:

import pandas as pd
import numpy as np
d = {'fruit': ['apple', 'pear', 'peach'] * 5, 'values': np.random.randint(0,1000,15)}
df = pd.DataFrame(data=d)

d2 = {'fruit': ['apple', 'pear', 'peach'] * 2, 'min': [43, 196, 143, 174, 510, 450], 'max': [120, 310, 311, 563, 549, 582]}
df2 = pd.DataFrame(data=d2)
Run Code Online (Sandbox Code Playgroud)

我想选择所有的行df匹配fruitdf2 values之间minmax

我正在尝试类似的东西:

df.loc[df['fruit'].isin(df2['fruit'])].loc[df['values'].between(df2['min'], df2['max'])]
Run Code Online (Sandbox Code Playgroud)

但可以预见的是,这将返回一个 ValueError:只能比较标记相同的系列对象。

编辑:您会注意到fruitdf2. 这是故意的。我还在试图抓住之间的行minmax方法同上,只是我不只是要折叠的水果占据了绝对的行minmax。 …

python pandas

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

Seaborn clustermap 颜色条调整

在调整颜色条时遇到几个问题seaborn.clustermap。我试图:

  1. 将颜色条定向为水平方向
  2. 更改颜色条边框颜色
  3. 更改颜色条刻度长度

我检查过文档没有figure.colorbar效果。

最小代码:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

#data
corr = np.corrcoef(np.random.randn(10, 200))

#clustermap
kws = dict(cbar_kws=dict(label='Label', ticks=[0,0.50,1], orientation='horizontal'), figsize=(6, 6))
sns.clustermap(corr, cmap="Blues", xticklabels=False, yticklabels=False, **kws)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python matplotlib seaborn

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

使用列中的数值或NaN过滤DataFrame中的行

我想删除一列中数值小于15的所有行,但是如果值是NaN,我想保留这些行。我该怎么办?

此行删除值小于15的所有行,但删除所有NaN行:

df2 = df[(df['columnA'] >= 15)] 
Run Code Online (Sandbox Code Playgroud)

python pandas

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

循环发送多个Pandas DataFrames .to_csv()

我有五个DataFrames, ,df1df2df3,。df4df5

我可以使用以下方法分别保存每个:

df1.to_csv('~/Desktop/df1.tsv', index=False, header=False, sep='\t')
df2.to_csv('~/Desktop/df2.tsv', index=False, header=False, sep='\t')
...
Run Code Online (Sandbox Code Playgroud)

我可以在文件路径以保存Dataframe的变量名结尾的循环中执行此操作吗?

python pandas

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