df = df[ df['Sentence'].duplicated(keep=False)]
df = df[df.groupby('Sentence')['Score_Unigram'].transform('max') == df['Score_Unigram']]
df = df[df.groupby(['Sentence', 'Score_Unigram'])['Score_Bigram'].transform('max') == df['Score_Bigram']]
print (df)
Sentence Score_Unigram Score_Bigram versionId
0 As of Dat 5 1 269004158
3 Date Docum 5 3 345973060
5 Date Docum 5 3 372529352
9 Date $ in 9 4 372529352
在上面的示例中,public static class SomeRegexConsts
{
public static readonly string FullName = $"{Name} {Surname}";
private static readonly string Name = "[A-Z][a-z]+";
private static readonly string Surname = "[A-Z][a-z]+";
}
在运行时等于FullName
。
它与静态字段的初始化方式(从上到下)有关。
一般而言,我看不到其他解决方案:
" "
任何想法如何改进此代码,因为我不喜欢此lambda,并且不能将public static string FullName => $"{Name} {Surname}";
和FullName
移到Name
和Surname
下,因为StyleCop不允许我这样做这个。
答案 0 :(得分:2)
如果您不想将FullName
移到其他人的下方,我认为这是唯一的解决方案。
public static class SomeRegexConsts
{
static SomeRegexConsts(){
FullName = $"{Name} {Surname}";
}
public static readonly string FullName;
private static readonly string Name = "[A-Z][a-z]+";
private static readonly string Surname = "[A-Z][a-z]+";
答案 1 :(得分:0)
如何创建一个返回FullName字符串的公共方法?
public string getFullname()
{
return $"{Name} {Surname}";
}
这样public static readonly string FullName = $"{Name} {Surname}";
(如果可以摆脱它的话)就不再需要了。
答案 2 :(得分:0)
我相信这将与StyleCop一起使用,因为在任何类型的字段之前都需要const
:
public static class SomeRegexConsts
{
private const string Name = "[A-Z][a-z]+";
private const string Surname = "[A-Z][a-z]+";
public static readonly string FullName = $"{Name} {Surname}";
}
除非您在需要非常量字段的类中使用反射,否则编译后的代码应不受影响。