我知道这个问题可能看起来微不足道,但我在任何地方都找不到解决方案。我有一个非常大的 pandas 数据框df,看起来像这样:
conference IF2013 AR2013
0 HOTMOBILE 16.333333 31.50
1 FOGA 13.772727 60.00
2 IEA/AIE 10.433735 28.20
3 IEEE Real-Time and Embedded Technology and App... 10.250000 29.00
4 Symposium on Computational Geometry 9.880342 35.00
5 WISA 9.693878 43.60
6 ICMT 8.750000 22.00
7 Haskell 8.703704 39.00
Run Code Online (Sandbox Code Playgroud)
我想在末尾添加一个额外的列,将其排序为 1,2,3,4 等。所以它看起来像这样:
conference IF2013 AR2013 Ranking
0 HOTMOBILE 16.333333 31.50 1
1 FOGA 13.772727 60.00 2
2 IEA/AIE 10.433735 28.20 3
3 IEEE Real-Time and Embedded Technology and App... 10.250000 …Run Code Online (Sandbox Code Playgroud) 我正在尝试将下面代码中生成的NaN值替换为0.我不明白下面的内容不起作用.它仍然保持NaN值.
df_pubs=pd.read_sql("select Conference, Year, count(*) as totalPubs from publications where year>=1991 group by conference, year", db)
df_pubs['Conference'] = df_pubs['Conference'].str.encode('utf-8')
df_pubs = df_pubs.pivot(index='Conference', columns='Year', values='totalPubs')
df_pubs.fillna(0)
print df_pubs
Run Code Online (Sandbox Code Playgroud)
print df produces 这个:
Year 1991 \
Conference
223
10th Anniversary Colloquium of UNU/IIST NaN
15. WLP NaN
1999 ACM SIGMOD Workshop on Research Issues in Data Mining and Knowledge Discovery NaN
25 Years CSP NaN
Run Code Online (Sandbox Code Playgroud) 我有两个数据框:
所有数据:
AID VID Freq
0 00016A3E 0127C661 1
1 00016A3E 0C05DA5D 2
2 00016A3E 0C032814 1
3 00016A3E 0BF6C78D 1
4 00016A3E 0A79DFF1 1
5 00016A3E 07BD2FB2 1
6 00016A3E 0790E61B 1
7 00016A3E 0C24ED25 3
8 00016A3E 073630B5 3
9 00016A3E 06613535 1
10 00016A3E 05F809AF 1
11 00016A3E 05C625FF 1
12 00016A3E 04220EA8 4
13 00016A3E 013A29E5 1
14 00016A3E 0761C98A 1
15 00016AE9 0A769475 16
16 00016AE9 0A7DED0A 2
17 00016AE9 0ABF60DF 9
18 00016AE9 0AE3F25A …Run Code Online (Sandbox Code Playgroud) 我正在使用 seaborn 的 kdeplot 来绘制我的数据分布。
sns.kdeplot(data['numbers'], shade=True)
Run Code Online (Sandbox Code Playgroud)
我想将线下的阴影区域分成三部分,分别显示“高”百分位数和“低”百分位数。如果我可以用三种不同的颜色为阴影区域着色,那将是理想的。
知道我该怎么做吗?
我希望它看起来像下面这样我可以决定颜色之间的截止值。
我是正则表达式的新手,我正在试图弄清楚如何在数据框中生成一个新列,捕获名称和姓氏的第一个首字母.
例如df:
Name NormName
john smith j smith
s r peterson s peterson
sandra oh s oh
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止尝试的代码,但似乎无法让它工作.我不知道如何只更换中间部分.
namereg = re.compile('(^[a-z])(.*)(\s[a-z]*$)')
names['NormName'] = names.Name.apply(lambda tmp: namereg.sub('',tmp))
Run Code Online (Sandbox Code Playgroud)