我使用这里的代码来训练一个模型来预测从0到的打印样式编号9:
idx_to_class = {0: "0", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7:"7", 8: "8", 9:"9"}
def predict(model, test_image_name):
transform = image_transforms['test']
test_image = Image.open(test_image_name)
plt.imshow(test_image)
test_image_tensor = transform(test_image)
if torch.cuda.is_available():
test_image_tensor = test_image_tensor.view(1, 3, 224, 224).cuda()
else:
test_image_tensor = test_image_tensor.view(1, 3, 224, 224)
with torch.no_grad():
model.eval()
# Model outputs log probabilities
out = model(test_image_tensor)
ps = torch.exp(out)
topk, topclass = ps.topk(1, dim=1)
# print(topclass.cpu().numpy()[0][0])
print("Image class: ", idx_to_class[topclass.cpu().numpy()[0][0]]) …Run Code Online (Sandbox Code Playgroud) 我用下面的代码生成一个图:
ggplot(reshaped_median, aes(x= Month_Yr, y = value))+
geom_line(aes(color = Sentiments)) +
geom_point(aes(color = Sentiments)) +
labs(title = 'Change in Sentiments (in median)', x = 'Month_Yr', y = 'Proportion of Sentiments %') +
theme(axis.text.x = element_text(angle = 60, hjust = 1))
Run Code Online (Sandbox Code Playgroud)
但正如您所注意到的,x 轴上的日期标签太密集,因此如果我想要它每季度或每半年(每 3 或 6 个月)显示日期。
来自的值的Month_Yr格式为%Y-%m。
我怎么能这么做呢?谢谢。
全部,
要替换某一列中的一个字符串,我已经完成了此操作,并且效果很好:
dataUS['sec_type'].str.strip().str.replace("LOCAL","CORP")
Run Code Online (Sandbox Code Playgroud)
我现在想用一个字符串替换多个字符串说替换["LOCAL", "FOREIGN", "HELLO"]为"CORP"
怎样才能让它发挥作用?下面的代码不起作用
dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
Run Code Online (Sandbox Code Playgroud) 我有一个这样的Excel文件:
我尝试读入read.xlsx或read_excel跳过第二行:
library(xlsx)
df <- read.xlsx('./data.xls', 'Sheet1')
library(readxl)
df <- read_excel("./data.xls", sheet = 'Sheet0', skip = 2, col_names = TRUE)
Run Code Online (Sandbox Code Playgroud)
第一个 ( read.xlsx),我没有找到skip行参数,第二个给出了df没有标题的参数。
上面的代码哪里做错了,如何正确阅读?谢谢。
我有一个看起来像这样的熊猫框架:
有没有办法在最后一列中添加数字而不必遍历数据框?
我在大熊猫中使用分组和自动递增组 ID的结果,但没有使它适合我的目的
这是生成数据帧的代码
import pandas as pd
columns = ['Product','SubProd', 'NeedThis']
Index=['4/20/2012','4/27/2012','5/4/2012','5/11/2012','5/18/2012','4/20/2012',
'4/27/2012','5/4/2012','5/11/2012','5/18/2012','5/25/2012','10/31/2014','11/7/2014',
'11/14/2014','11/21/2014','11/28/2014']
datas = {'Product' : ['A','A','A','A','A','A','A','A','A','A','A','B','B','B','B','B'],
'SubProd' : ['BL','BL','BL','BL','BL','lk','lk','lk','lk','lk','lk','po','po','po','po','po']}
df = pd.DataFrame(data=datas, index=Index)
print(df)
Run Code Online (Sandbox Code Playgroud)
输出:
Product SubProd
4/20/2012 A BL
4/27/2012 A BL
5/4/2012 A BL
5/11/2012 A BL
5/18/2012 A BL
4/20/2012 A lk
4/27/2012 A lk
5/4/2012 A lk
5/11/2012 A lk
5/18/2012 A lk
5/25/2012 A lk
10/31/2014 B po
11/7/2014 B po
11/14/2014 B po
11/21/2014 B …Run Code Online (Sandbox Code Playgroud) 这是我使用 shap 的代码:
由于我只是绘制了相同形状值的三倍,因此我希望这三个图是相同的。然而,它一直在变化。经过一些研究,似乎每次调用时顶部都会出现一个新值,但为什么呢?这是形状中的错误吗?
编辑1:我尝试在每次调用之间加载相同的模型shap.plots.beeswarm,但结果仍然不同。
我有两个示例数据帧,如下所示:
df1 = pd.DataFrame({'Name': {0: 'John', 1: 'Bob', 2: 'Shiela'},
'Degree': {0: 'Masters', 1: 'Graduate', 2: 'Graduate'},
'Age': {0: 27, 1: 23, 2: 21}})
df2 = pd.DataFrame({'Name': {0: 'John S.', 1: 'Bob K.', 2: 'Frank'},
'Degree': {0: 'Master', 1: 'Graduated', 2: 'Graduated'},
'GPA': {0: 3, 1: 3.5, 2: 4}})
Run Code Online (Sandbox Code Playgroud)
我想使用模糊匹配方法基于两列“名称”和“度”将它们合并在一起,以排除可能的重复项。这是我在此处的参考帮助下所实现的: 在数据框列上应用模糊匹配并将结果保存在新列中
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
compare = pd.MultiIndex.from_product([df1['Name'],
df2['Name']]).to_series()
def metrics(tup):
return pd.Series([fuzz.ratio(*tup),
fuzz.token_sort_ratio(*tup)],
['ratio', 'token'])
compare.apply(metrics)
compare.apply(metrics).unstack().idxmax().unstack(0)
compare.apply(metrics).unstack(0).idxmax().unstack(0)
Run Code Online (Sandbox Code Playgroud)
假设一个人的fuzz.ratio的名字和学位的比率都高于80,我们认为他们是同一个人。并将df1中的Name和Degree作为默认值。如何获得以下预期结果?谢谢。
df = df1.merge(df2, on = ['Name', …Run Code Online (Sandbox Code Playgroud) 我试图在两个不同的数据框中仅提取数字和字符串。我正在使用正则表达式来提取数字和字符串。
\nimport pandas as pd\n\ndf_num = pd.DataFrame({\n \'Colors\': [\'lila1.5\', \'rosa2.5\', \'gelb3.5\', \'gr\xc3\xbcn4\', \'rot5\', \'schwarz6\', \'grau7\', \'wei\xc3\x9f8\', \'braun9\', \'hellblau10\'],\n \'Animals\': [\'hu11nd\', \'12welpe\', \'13katze\', \'s14chlange\', \'vo15gel\', \'16papagei\', \'ku17h\', \'18ziege\', \'19pferd\',\n \'esel20\']\n })\n\nfor column in df_num.columns:\n df_num[column] = df_num[column].str.extract(\'(\\d+)\').astype(float)\n\nprint(df_num)\nRun Code Online (Sandbox Code Playgroud)\n我也尝试过使用\'([\\d+][\\d+\\.\\d+])\' and \'([\\d+\\.\\d+])\'
在这里我得到了输出,但不是我所期望的。虽然我期待浮点数,但我没有得到 1.5 或 2.5。
\n我得到如下图所示的内容:
\n\ndf_str = pd.DataFrame({\n \'Colors\': [\'lila1.5\', \'rosa2.5\', \'gelb3\', \'gr\xc3\xbcn4\', \'rot5\', \'schwarz6\', \'grau7\', \'wei\xc3\x9f8\', \'braun9\', \'hellblau10\'],\n \'Animals\': [\'hu11nd\', \'12welpe\', \'13katze\', \'s14chlange\', \'vo15gel\', \'16papagei\', \'ku17h\', \'18ziege\', \'19pferd\',\n \'esel20\']\n })\n\nfor column in df_str.columns:\n …Run Code Online (Sandbox Code Playgroud) 给定一个建筑信息数据框,如下所示:
id floor type
0 1 13 office
1 2 12 office
2 3 9 office
3 4 9 office
4 5 7 office
5 6 6 office
6 7 9 office
7 8 5 office
8 9 5 office
9 10 5 office
10 11 4 retail
11 12 3 retail
12 13 2 retail
13 14 1 retail
14 15 -1 parking
15 16 -2 parking
16 17 13 office
Run Code Online (Sandbox Code Playgroud)
我想检查列floor中是否缺少楼层(楼层 0 除外,默认情况下不存在楼层)。
代码: …
给定数据帧列表l如下:
l <- list(a = data.frame(a_1 = c(11, 12),
a_2 = c(13, 14)),
b = data.frame(b_1 = c(21, 22),
b_2 = c(23, 24)),
c = data.frame(c_1 = c(31, 32),
c_2 = c(33, 34)))
print(l)
Run Code Online (Sandbox Code Playgroud)
出去:
现在我想new_col使用每个数据框的名称附加一个新列:
l[['a']]$new_col = 'a'
l[['b']]$new_col = 'b'
l[['c']]$new_col = 'c'
Run Code Online (Sandbox Code Playgroud)
names(l)我想知道如何自动使用哪个为每个数据框附加列[1] "a" "b" "c"?谢谢。
最终的结果会是这样的: