假设我们有两个熊猫数据框。第一个没有列名:
no_col_names_df = pd.DataFrame(np.array([[1,2,3], [4,5,6], [7,8,9]]))
Run Code Online (Sandbox Code Playgroud)
第二个有:
col_names_df = pd.DataFrame(np.array([[10,2,3], [4,45,6], [7,18,9]]),
columns=['col1', 'col2', 'col3'])
Run Code Online (Sandbox Code Playgroud)
我想要做的是让副本列名来自col_names_df于no_col_names_df这样下的数据帧创建:
col1 col2 col3
0 1 2 3
1 4 5 6
2 7 8 9
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
new_df_with_col_names = pd.DataFrame(data=no_col_names_df, columns=col_names_df.columns)
Run Code Online (Sandbox Code Playgroud)
但不是来自no_col_names_dfI getNaN的值。
假设我们有以下 JSON 文件。为了示例起见,它是由字符串模拟的。字符串是输入,Tree对象应该是输出。我将使用树的图形表示法来呈现输出。
我发现以下类可以在 Python 中处理树概念:
class TreeNode(object):
def __init__(self, data):
self.data = data
self.children = []
def add_child(self, obj):
self.children.append(obj)
def __str__(self, level=0):
ret = "\t"*level+repr(self.data)+"\n"
for child in self.children:
ret += child.__str__(level+1)
return ret
def __repr__(self):
return '<tree node representation>'
class Tree:
def __init__(self):
self.root = TreeNode('ROOT')
def __str__(self):
return self.root.__str__()
Run Code Online (Sandbox Code Playgroud)
输入文件可以具有不同的复杂性:
输入:
json_file = '{"item1": "end1", "item2": "end2"}'
输出:
"ROOT"
item1
end1
item2
end2
Run Code Online (Sandbox Code Playgroud)
输入:
json_file = {"item1": "end1", "item2": {"item3": "end3"}}
输出: …
我正在使用Keras训练深度神经网络,并寻找一种方法来保存并稍后加载类型的历史对象keras.callbacks.History.这是设置:
history_model_1 = model_1.fit_generator(train_generator,
steps_per_epoch=100,
epochs=20,
validation_data=validation_generator,
validation_steps=50)
Run Code Online (Sandbox Code Playgroud)
history_model_1 是我希望在另一个Python会话期间保存和加载的变量.
我正在尝试重新创建“R Graphics Cookbook”第 87 页中的示例图。
我尝试使用以下代码重新创建,但没有得到结果:
library(ggplot2)
library(hexbin)
sp <- ggplot(diamonds, aes(x=carat, y=price))
sp + stat_binhex() +
scale_fill_gradient(low="lightblue", high="red",
breaks=c(0, 250, 500, 1000, 2000, 4000, 6000),
limits=c(0, 6000))
Run Code Online (Sandbox Code Playgroud)
这使
我正在尝试创建一个带注释的 Sankey 图。我希望最终版本沿着这个手动注释的图表的方向看:
获取桑基图的简单部分:
sankey_diagram <- plot_ly(
type = "sankey",
orientation = "h",
node = list(
label = c("Node_A_1", "Node_A_2", "Node_B_2", "Node_B_3", "Node_C_1", "Node_C_2"),
color = c("blue", "blue", "blue", "blue", "blue", "blue"),
pad = 15,
thickness = 35,
line = list(
color = "black",
width = 0.5
)
),
link = list(
source = c(0,1,0,2,3,3),
target = c(2,3,3,4,4,5),
value = c(8,4,2,8,4,2)
)
) %>%
layout(
font = list(
size = 15
)
)
Run Code Online (Sandbox Code Playgroud)
起初我想,如果我想获得带注释的“列”,我应该转向 plotly 文档的注释部分。注释的问题在于它们在空间上仅限于(至少我认为是)图形的区域。这是基于注释的方法中的代码:
# properties that hide …Run Code Online (Sandbox Code Playgroud) 让我们考虑以下数据框:
set.seed(123)
data <- data.frame(col1 = factor(rep(c("A", "B", "C"), 4)),
col2 = factor(c(rep(c("A", "B", "C"), 3), c("A", "A", "A"))),
val1 = 1:12,
val2 = rnorm(12, 10, 15))
Run Code Online (Sandbox Code Playgroud)
应急表如下:
cont_tab <- table(data$col1, data$col2, dnn = c("col1", "col2"))
cont_tab
col2
col1 A B C
A 4 0 0
B 1 3 0
C 1 0 3
Run Code Online (Sandbox Code Playgroud)
如您所见,有些对没有出现:(A,B)、(A,C)、(B,C)、(C,B)。我分析的最终目标是列出所有对(在本例中为 9)并显示每个对的统计数据。在使用dplyr::group_by()函数时,我遇到了一个限制。即,dplyr::group_by()只考虑现有对(至少出现一次的对):
data %>%
group_by(col1, col2) %>%
summarize(stat = sum(val2) - sum(val1))
# A tibble: 5 x 3
# Groups: col1 [?] …Run Code Online (Sandbox Code Playgroud) openpyxl默认情况下,即使我指定应使用索引 0 创建工作表,也会创建名称为“Sheet1”的电子表格。我确信这不是一个重复的问题。文档说openpyxl支持2010 MS Office版本,但我使用的是office365 pro。您能提供任何帮助或建议吗?
请注意,独立代码对我来说工作得很好,但是当相同的代码与其他代码集成时,我遇到了下面描述的问题。我已经尝试了很多事情。由于我是 Python 新手,看起来有些东西我不知道。如果我指定索引 1,则会创建两张工作表:一张带有名称Sheet,另一张带有我提供的名称。如果我提供索引 0,则只会Sheet1创建一张具有名称的工作表。
下面的代码应在索引 0 处创建名为 name 的工作表test。
for r in range(3, rowcount + 1):
for c in range(1, columncount + 1):
final_path = first_part + str(r) + second_part + str(c) + third_part
table_data = self.driver.find_element_by_xpath(final_path).text
fname = r"{}_{}.xlsx".format(str(i[1]), str(i[2]))
if (os.path.exists(fname)):
workbook = openpyxl.load_workbook(fname)
worksheet = workbook[fname]
else:
workbook = Workbook()
worksheet= workbook.create_sheet(fname,0)
#worksheet = workbook.active
#worksheet.title = fname
worksheet.cell(row=r,column=c).value = table_data …Run Code Online (Sandbox Code Playgroud) 我尝试使用 label_parsed 将表达式放入构面标签中,但没有成功:
library(ggplot2)
mpg3 <- mpg
levels(mpg3$drv)[levels(mpg3$drv)=="4"] <- "4^{wd}"
levels(mpg3$drv)[levels(mpg3$drv)=="f"] <- "- Front %.% e^{pi * i}"
levels(mpg3$drv)[levels(mpg3$drv)=="r"] <- "4^{wd} - Front"
ggplot(mpg3, aes(x=displ, y=hwy)) + geom_point() +
facet_grid(. ~ drv, labeller = label_parsed)
Run Code Online (Sandbox Code Playgroud)
我得到的图缺少表达式 - 方面标签包含 drv 变量的原始级别。
如果我输入,levels(mpg3$drv)我会得到character(0)。
我在 Python 中有两种算法,它们将元组列表转换为字典:
def _prep_high_low_data_for_view(self, low_high_list):
dates = []
prices = []
lables = []
for (x, y, z) in low_high_list:
dates.append(x)
prices.append(y)
lables.append(z)
return {'date': dates,
'price': prices,
'label': lables
}
Run Code Online (Sandbox Code Playgroud)
第二个是:
def _prep_high_low_data_for_view(self, low_high_list):
return {'date': [date for date, _, _ in low_high_list],
'price': [price for _, price, _ in low_high_list],
'label': [lable for _, _, lable in low_high_list],
}
Run Code Online (Sandbox Code Playgroud)
两种算法就它们的作用而言是等效的。是不是第二种算法在复杂度方面更差,因为有三个单独的列表推导式?