我有一个227x4 DataFrame,国家名称和数值要清理(争吵?).
这是DataFrame的抽象:
import pandas as pd
import random
import string
import numpy as np
pdn = pd.DataFrame(["".join([random.choice(string.ascii_letters) for i in range(3)]) for j in range (6)], columns =['Country Name'])
measures = pd.DataFrame(np.random.random_integers(10,size=(6,2)), columns=['Measure1','Measure2'])
df = pdn.merge(measures, how= 'inner', left_index=True, right_index =True)
df.iloc[4,1] = 'str'
df.iloc[1,2] = 'stuff'
print(df)
Country Name Measure1 Measure2
0 tua 6 3
1 MDK 3 stuff
2 RJU 7 2
3 WyB 7 8
4 Nnr str 3
5 rVN 7 4
Run Code Online (Sandbox Code Playgroud)
如何np.nan在不触及国家/地区名称的情况下在所有列中替换字符串值? …
必须有一个明显的答案,但我既无法在 sort_values() 的文档中找到它 ,也无法在相关问题帖子中找到它*
by接受df.sort_values()列标签,但是如何使用列的位置进行排序?
我想出了这个麻烦的代码
df.iloc[df.iloc[:,1].sort_values().index]
对第二列进行排序。
我在想类似的东西df.sort_values(by=1,axis=1)会存在。那么语法上简单且正确的方法是什么?
我希望重现该教程中的 PairGrid 图,但在本地我的条形图不像教程中那样堆叠,我不知道如何使它们如此。
import seaborn as sns
import matplotlib.pyplot as plt # for graphics
import os
os.sys.version
# '3.6.4 (default, Sep 20 2018, 19:07:50) \n[GCC 5.4.0 20160609]'
sns.__version__
# '0.9.0'
mpg = sns.load_dataset('mpg')
g = sns.PairGrid(data=mpg[["mpg", "horsepower", "weight", "origin"]], hue="origin")
g.map_upper(sns.regplot)
g.map_lower(sns.residplot)
# below for the histogram
g.map_diag(plt.hist)
# also I tried
# g.map_diag(lambda x, label, color: plt.hist(x, label=label, color=color, histtype='barstacked', alpha=.4))
# g.map_diag(plt.hist, histtype='barstacked')
# but same result
g.savefig('./Plots/mpg.svg')
Run Code Online (Sandbox Code Playgroud)