我有以下的DataFrame: import pandas as pd df = pd.DataFrame({'a': [1,2,3], 'b': [2,3,4], 'c':['dd','ee','ff'], 'd':[5,9,1]}) 我想添加一列“e”,它是列“a”,“b”和“d”的总和。 通过论坛,我认为这样的事情会工作: df['e'] = df[['a','b','d']].map(sum) 但不是! 我想实现具有列['a','b','d']和df作为input的操作。
假设我有一个结构为嵌套的字典“user_dict”: 级别1: UserId(长整型) 级别2:类别(string) 等级3:分类的属性(浮点数,整数等) 例如,这个字典的input是: user_dict[12] = { "Category 1": {"att_1": 1, "att_2": "whatever"}, "Category 2": {"att_1": 23, "att_2": "another"}} “user_dict”中的每个项目具有相同的结构,并且“user_dict”包含大量我想要馈送给pandas DataFrame的项目,从属性构build系列。 在这种情况下,分层索引对于这个目的是有用的。 具体来说,我的问题是,是否存在一种方法来帮助DataFrame构造函数理解该系列应该从字典中的“级别3”的值构build? 如果我尝试像这样: df = pandas.DataFrame(users_summary) “级别1”(用户ID)的项目被视为列,这是我想要达到的目标(有用户ID作为索引)的相反。 我知道我可以在迭代字典条目之后构build系列,但是如果有更直接的方法,这将非常有用。 类似的问题是询问是否可以从文件中列出的json对象构造一个pandas DataFrame。
使用Scala,我怎样才能将dataFrame分割成多个dataFrame(无论是数组还是集合)具有相同的列值。 例如,我想拆分下面的DataFrame: ID Rate State 1 24 AL 2 35 MN 3 46 FL 4 34 AL 5 78 MN 6 99 FL 至: 数据集1 ID Rate State 1 24 AL 4 34 AL 数据集2 ID Rate State 2 35 MN 5 78 MN 数据集3 ID Rate State 3 46 FL 6 99 FL
我正在寻找将每个包含一个列表的pandas细胞变成行。 所以,拿这个: 如果我想在“nearest_neighbors”列中解压和堆叠值,以使每个值都成为每个“对手”索引中的一行,那么我最好怎么去做呢?是否有pandas的方法,这个我只是不知道 在此先感谢,伙计们。
这是可能的,什么是最有效的整洁的方法添加一列到数据框? 更具体地说,列可以用作现有数据框的行ID。 在简单的情况下,从文件中读取,而不是标记它,我可以想到下面的东西(在斯卡拉),但它完成与错误(在第3行),反正看起来不是最好的路线可能: var dataDF = sc.textFile("path/file").toDF() val rowDF = sc.parallelize(1 to DataDF.count().toInt).toDF("ID") dataDF = dataDF.withColumn("ID", rowDF("ID"))
我想获得一个pandasDataFrame列标题的列表。 DataFrame将来自用户input,所以我不知道会有多less列或将被调用。 例如,如果我这样给一个DataFrame: >>> my_dataframe y gdp cap 0 1 2 5 1 2 3 9 2 8 7 2 3 3 4 7 4 6 7 7 5 4 8 3 6 8 2 8 7 9 9 10 8 6 6 4 9 10 10 7 我想要得到这样的列表: >>> header_list [y, gdp, cap]
我有一个“date”列pandas数据框。 现在我需要过滤掉数据框中所有的date在未来两个月之外的行。 基本上,我只需要保留在未来两个月内的行。 什么是最好的方式来实现这一点。
我的数据可能在给定的date有多个事件,或者在某个date没有事件。 我采取这些事件,按date计算并绘制它们。 然而,当我绘制他们时,我的两个系列并不总是匹配。 idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max()) s = df.groupby(['simpleDate']).size() 在上面的代码中, idx变成了30个date的范围。 2013年9月1日至2013年9月30日但是S可能只有25或26天,因为在给定date没有事件发生。 然后我得到一个AssertionError作为大小不匹配时,我尝试绘制: fig, ax = plt.subplots() ax.bar(idx.to_pydatetime(), s, color='green') 有什么正确的方法来解决这个问题? 我想删除IDX中没有值的date吗?或者(我宁愿这样做)是将0的缺失date添加到系列中。我宁愿有一个30天的完整图表,0值。 如果这种方法是正确的,有关如何开始的任何build议? 我需要某种dynamicreindexfunction吗? 这是S ( df.groupby(['simpleDate']).size() )的一个片段,注意04和05没有条目。 09-02-2013 2 09-03-2013 10 09-06-2013 5 09-07-2013 1
我需要使用存储在文件中的数据创build一个数据框。 为此,我想使用read_csv方法。 但是,分隔符不是很规则。 某些列由制表符分隔( \t ),其他则以空格分隔。 此外,一些列可以被2或3或更多的空格隔开,甚至可以通过空格和制表符的组合(例如3个空格,2个制表符和1个空格)。 有没有办法告诉大pandas妥善处理这些文件? 顺便说一句,如果我使用Python,我没有这个问题。 我用: for line in file(file_name): fld = line.split() 它工作完美。 它并不在乎字段之间是否有2或3个空格。 即使是空格和制表符的组合也不会造成任何问题。 pandas可以做同样的事吗?
有没有一种更简单的方法来确保数据框的行按照我在下面的简短示例中实现的“目标”向量进行sorting? df <- data.frame(name = letters[1:4], value = c(rep(TRUE, 2), rep(FALSE, 2))) df # name value # 1 a TRUE # 2 b TRUE # 3 c FALSE # 4 d FALSE target <- c("b", "c", "a", "d") 这似乎有点太“复杂”,以完成工作: idx <- sapply(target, function(x) { which(df$name == x) }) df <- df[idx,] rownames(df) <- NULL df […]