我可以使用此行删除列中带有 nan 的所有行:
df2 = df.dropna(subset=['columnA'])
Run Code Online (Sandbox Code Playgroud)
如何删除所有值不是NaN 的行?
我试图连接两个 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)。
要检查所有可用的 matplotlib 字体,我按照此处的说明进行操作:
“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)
无论如何我可以抑制这个错误吗?
我正在绘制许多散点图,例如:
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 个散点图执行此操作,并且我想从定性颜色图中选择颜色以获得颜色平衡和分离,例如:
做这个的最好方式是什么?
我有一些数据帧:
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) 相关:pandas dataframe groupby 并获取第 n 行
我可以使用该groupby
方法并选择前 N 个组成员:
df.groupby('columnA').head(N)
Run Code Online (Sandbox Code Playgroud)
但是如果我想要每组的第一、第二和第四个成员怎么办?
使用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)
我有两个数据帧:
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
匹配fruit
到df2
与 values
之间min
和max
。
我正在尝试类似的东西:
df.loc[df['fruit'].isin(df2['fruit'])].loc[df['values'].between(df2['min'], df2['max'])]
Run Code Online (Sandbox Code Playgroud)
但可以预见的是,这将返回一个 ValueError:只能比较标记相同的系列对象。
编辑:您会注意到fruit
在df2
. 这是故意的。我还在试图抓住之间的行min
和max
方法同上,只是我不只是要折叠的水果占据了绝对的行min
和max
。 …
在调整颜色条时遇到几个问题seaborn.clustermap
。我试图:
我检查过文档没有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)
我想删除一列中数值小于15的所有行,但是如果值是NaN,我想保留这些行。我该怎么办?
此行删除值小于15的所有行,但也删除所有NaN行:
df2 = df[(df['columnA'] >= 15)]
Run Code Online (Sandbox Code Playgroud) 我有五个DataFrames, ,df1
,df2
,df3
,。df4
df5
我可以使用以下方法分别保存每个:
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的变量名结尾的循环中执行此操作吗?