我已经开始了一个新项目,他们有一个非常规范化的数据库.可以查找的所有内容都作为外键存储到查找表中.这是规范化和精细的,但我最终为最简单的查询做了5个表连接.
from va in VehicleActions
join vat in VehicleActionTypes on va.VehicleActionTypeId equals vat.VehicleActionTypeId
join ai in ActivityInvolvements on va.VehicleActionId equals ai.VehicleActionId
join a in Agencies on va.AgencyId equals a.AgencyId
join vd in VehicleDescriptions on ai.VehicleDescriptionId equals vd.VehicleDescriptionId
join s in States on vd.LicensePlateStateId equals s.StateId
where va.CreatedDate > DateTime.Now.AddHours(-DateTime.Now.Hour)
select new {va.VehicleActionId,a.AgencyCode,vat.Description,vat.Code,
vd.LicensePlateNumber,LPNState = s.Code,va.LatestDateTime,va.CreatedDate}
Run Code Online (Sandbox Code Playgroud)
我想建议我们取消一些东西.喜欢州代码.在我的一生中,我没有看到州代码的变化.类似的故事与3个字母的代理商代码.这些由代理机构发放,永远不会改变.
当我找到状态代码问题和5表连接的DBA时.我得到了"我们正常化"和"加入很快"的回应.
反规范化有一个令人信服的论据吗?如果没别的话,我会为了理智而这样做.
T-SQL中的相同查询:
SELECT VehicleAction.VehicleActionID
, Agency.AgencyCode AS ActionAgency
, VehicleActionType.Description
, VehicleDescription.LicensePlateNumber
, State.Code AS LPNState
, VehicleAction.LatestDateTime AS ActionLatestDateTime
, VehicleAction.CreatedDate
FROM …
Run Code Online (Sandbox Code Playgroud) 我刚刚开始一个项目,我正在使用Twitters Bootstrap,并且想知道它是否有自己的重置规则.
通常我会在规范化样式表中使用以帮助我的网站在浏览器中看起来更加一致,但这是否需要Bootstrap?
我正在尝试获取项目根目录下的所有单元测试程序集的列表.我可以这样做:
<CreateItem Include="**\bin\**\*.UnitTest.*.dll">
<Output TaskParameter="Include" ItemName="Items"/>
</CreateItem>
Run Code Online (Sandbox Code Playgroud)
但是,由于它们存在于多个子目录中,因此会多次找到相同的DLL.有没有一种简单的方法让我根据项目元数据(即文件名和扩展名)进行规范化,以便获得一个唯一的单元测试DLL列表?或者我是否必须编写自己的任务?
我想知道正常化/标准化numpy的最佳方法是什么recarray
.为了说清楚,我不是在谈论一个数学矩阵,而是一个记录数组,它也有例如文本列(如标签).
a = np.genfromtxt("iris.csv", delimiter=",", dtype=None)
print a.shape
> (150,)
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我无法进行处理,a[:,:-1]
因为形状是一维的.
我找到的最好的是迭代所有列:
for nam in a.dtype.names[:-1]:
col = a[nam]
a[nam] = (col - col.min()) / (col.max() - col.min())
Run Code Online (Sandbox Code Playgroud)
这样做更优雅的方式?是否有某些方法,如"标准化"或"标准化"?
如何将一个字符和一个"组合重音"组合成一个字符?
我正在使用一个短语,用户进入一个网页并将其提交到法语 - 英语词典.有时字典查找会失败,因为大多数重音字符有两种表示形式.例如:
\xE9
带有急性的拉丁文小写字母e).e
+ \u0301
(结合锐音).我总是希望将前者(单个字符)提交到字典中.
现在,我正在通过用等效的单个字符替换我找到的每个两个字符的出现来做到这一点.但是,当它从输入字段中获取时,是在JavaScript中还是在浏览器中有更简单(即单行)的方式吗?
function translate(phrase) {
// Combine accents into a single accented character, if necessary.
var TRANSFORM = [
// Acute accent.
[/E\u0301/g, "\xC9"], // É
[/e\u0301/g, "\xE9"], // é
// Grave accent.
[/a\u0300/g, "\xE0"], // à
[/e\u0300/g, "\xE8"], // è
[/u\u0300/g, "\xF9"], // ù
// Cedilla (no combining accent).
// Circumflex.
[/a\u0302/g, "\xE2"], // â
[/e\u0302/g, "\xEA"], // ê
[/i\u0302/g, "\xEE"], // î
[/o\u0302/g, "\xF4"], // ô …
Run Code Online (Sandbox Code Playgroud) 我有一个 ggplot stat_bin2d“热图”。
library(ggplot2)
value<-rep(1:5, 1000)
df<-as.data.frame(value)
df$group<-rep(1:7, len=5000)
df<-df[sample(nrow(df), 3000), ]
ggplot(df, aes(factor(group), factor(value))) +stat_bin2d()
Run Code Online (Sandbox Code Playgroud)
我尝试向 aes 添加填充:
aes(factor(group), factor(value),fill = (..count..)/mean(..count..))
Run Code Online (Sandbox Code Playgroud)
作为模仿..密度..(不接受)的一种方式似乎不被接受,但这不是我想要的 - 它似乎除以整个 df 的计数总和。我希望每组中的值计数(按 x 轴)按组内的平均值(或总和或其他统计数据)进行归一化。不幸的是, sum(..count..) 似乎给出了整个 df 的总和,而不仅仅是列的总和。
我使用的数据有一些空值,我想使用 knn 插补来插补空值。为了有效地估算我想规范化数据。
normalizer = Normalizer() #from sklearn.preprocessing
normalizer.fit_transform(data[num_cols]) #columns with numeric value
Run Code Online (Sandbox Code Playgroud)
错误:输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值。
那么我如何规范化具有 NaN 的数据
我有一个 Pandas 数据框,其中一列包含 JSON 数据(JSON 结构很简单:只有一层,没有嵌套数据):
ID,Date,attributes
9001,2020-07-01T00:00:06Z,"{"State":"FL","Source":"Android","Request":"0.001"}"
9002,2020-07-01T00:00:33Z,"{"State":"NY","Source":"Android","Request":"0.001"}"
9003,2020-07-01T00:07:19Z,"{"State":"FL","Source":"ios","Request":"0.001"}"
9004,2020-07-01T00:11:30Z,"{"State":"NY","Source":"windows","Request":"0.001"}"
9005,2020-07-01T00:15:23Z,"{"State":"FL","Source":"ios","Request":"0.001"}"
Run Code Online (Sandbox Code Playgroud)
我想标准化属性列中的 JSON 内容,以便 JSON 属性成为数据帧中的每一列。
ID,Date,attributes.State, attributes.Source, attributes.Request
9001,2020-07-01T00:00:06Z,FL,Android,0.001
9002,2020-07-01T00:00:33Z,NY,Android,0.001
9003,2020-07-01T00:07:19Z,FL,ios,0.001
9004,2020-07-01T00:11:30Z,NY,windows,0.001
9005,2020-07-01T00:15:23Z,FL,ios,0.001
Run Code Online (Sandbox Code Playgroud)
我一直在尝试使用Pandas json_normalize,它需要一个字典。因此,我想我会将属性列转换为字典,但它并没有完全按照预期的方式工作,因为字典的形式如下:
df.attributes.to_dict()
{0: '{"State":"FL","Source":"Android","Request":"0.001"}',
1: '{"State":"NY","Source":"Android","Request":"0.001"}',
2: '{"State":"FL","Source":"ios","Request":"0.001"}',
3: '{"State":"NY","Source":"windows","Request":"0.001"}',
4: '{"State":"FL","Source":"ios","Request":"0.001"}'}
Run Code Online (Sandbox Code Playgroud)
并且规范化使用键 (0, 1, 2, ...) 作为列名,而不是 JSON 键。
我感觉我已经很接近了,但我不太清楚如何准确地做到这一点。欢迎任何想法。
谢谢你!
我正在使用pandas数据帧,我有数据,我每个公司都有客户.但是,公司的标题略有不同,但最终会影响数据.例:
Company Customers
AAAB 1,000
AAAB Inc. 900
The AAAB Inc. 20
AAAB the INC 10
Run Code Online (Sandbox Code Playgroud)
我希望从具有非标准名称的公司的几个不同公司的数据库中获得总客户.知道我应该从哪里开始吗?
给定一个熊猫数据框,例如
import pandas as pd
df = pd.DataFrame({'id': ['id1','id1','id2','id2'] ,
'x': [1,2,3,4],
'y': [10,20,30,40]})
Run Code Online (Sandbox Code Playgroud)
每个数值列可以被归一化到单位间隔[0,1]
与
columns = ['x', 'y']
for column in columns:
df[column] = (df[column] - df[column].min()) / (df[column].max() - df[column].min())
Run Code Online (Sandbox Code Playgroud)
导致
id x y
0 id1 0.000000 0.000000
1 id1 0.333333 0.333333
2 id2 0.666667 0.666667
3 id2 1.000000 1.000000
Run Code Online (Sandbox Code Playgroud)
但是,如何在每个数字列上应用这种标准化id
?预期的结果将在这个过于简单的例子中
id x y
0 id1 0.000000 0.000000
1 id1 1.000000 1.000000
2 id2 0.000000 0.000000
3 id2 1.000000 1.000000
Run Code Online (Sandbox Code Playgroud)
事实证明不清楚如何在之后更新每个标准化列
df.groupby(['id']).apply(lambda x: ...)
Run Code Online (Sandbox Code Playgroud)