我正在构建一个烧瓶应用程序,允许用户上传CSV文件(包含不同的列),预览上传的文件,生成摘要统计信息,执行复杂的转换/聚合(有时通过Celery作业),然后导出修改后的数据.上传的文件被读入pandas DataFrame,这使我能够优雅地处理大多数复杂的数据工作.
我希望这些DataFrame以及相关的元数据(上传时间,上传文件的用户ID等)能够持续存在,并且可供多个用户传递到各种视图.但是,我不确定如何最好地将数据合并到我的SQLAlchemy模型中(我在后端使用PostgreSQL).
我考虑过三种方法:
PickleType并直接存储在DB中.这似乎是最直接的解决方案,但意味着我将大型二进制对象粘贴到数据库中.DataFrame.to_json())并将其存储为json类型(映射到PostgreSQL的json类型).这增加了每次访问DataFrame时解析JSON的开销,但它也允许通过PostgreSQL JSON运算符直接操作数据.鉴于每个的优点和缺点(包括我不知道的那些),是否有一种将pandas DataFrames合并到SQLAlchemy模型中的首选方法?
来自R新手的非常基本的表现问题.我想通过唯一的字段组合为数据框中的每一行分配一个组ID.这是我目前的做法:
> # An example data frame
> df <- data.frame(name=c("Anne", "Bob", "Chris", "Dan", "Erin"),
st.num=c("101", "102", "105", "102", "150"),
st.name=c("Main", "Elm", "Park", "Elm", "Main"))
> df
name st.num st.name
1 Anne 101 Main
2 Bob 102 Elm
3 Chris 105 Park
4 Dan 102 Elm
5 Erin 150 Main
>
> # A function to generate a random string
> getString <- function(size=10) return(paste(sample(c(0:9, LETTERS, letters), size, replace=TRUE), collapse=''))
>
> # Assign a random string for each unique …Run Code Online (Sandbox Code Playgroud) 我想基于第一组列中的值(具体地,第一列中的一列是空白的),同时将多列的值替换为其他列中的对应值.这是我正在尝试做的一个例子:
import pandas as pd
df = pd.DataFrame({'a1':['m', 'n', 'o', 'p'],
'a2':['q', 'r', 's', 't'],
'b1':['', '', 'a', '' ],
'b2':['', '', 'b', '']})
df
# a1 a2 b1 b2
# 0 m q
# 1 n r
# 2 o s a b
# 3 p t
Run Code Online (Sandbox Code Playgroud)
我想将b1和b2中的''值替换为a1和a2中的相应值,其中b1为空:
# a1 a2 b1 b2
# 0 m q m q
# 1 n r n r
# 2 o s a b
# 3 p t p t
Run Code Online (Sandbox Code Playgroud)
这是我的思考过程(我对熊猫来说相对较新,所以我可能会说这里有一个很重的R口音):
missing …Run Code Online (Sandbox Code Playgroud)