Tag: 数据框

如何透视DataFrame?

我开始使用Spark Dataframes,我需要能够转换数据以创build具有多行的1列中的多个列。 在Scalding中有内置的function,我相信Python中的Pandas,但是我找不到新的Spark Dataframe。 我认为我可以编写自定义函数,但是我不知道如何开始,尤其是因为我是一个Spark新手。 我有人知道如何做到这一点内置的function或如何写在斯卡拉的东西的build议,不胜感激。

pandas:如何将一列中的文本分成多行?

我正在处理一个大的csv文件,最后一列的下一列有一串文本,我想通过一个特定的分隔符来分割。 我想知道是否有一个简单的方法来做到这一点使用pandas或Python? CustNum CustomerName ItemQty Item Seatblocks ItemExt 32363 McCartney, Paul 3 F04 2:218:10:4,6 60 31316 Lennon, John 25 F01 1:13:36:1,12 1:13:37:1,13 300 我想分割的空间(' ') ,然后冒号(':')在Seatblocks列,但每个单元格会导致不同数量的列。 我有一个函数重新排列列,所以Seatblocks列是在工作表的末尾,但我不知道该怎么做。 我可以在excel中使用内置的text-to-columns函数和一个快速macros来实现,但是我的数据集有太多的excel处理logging。 最终,我想logging约翰·列侬的logging,并创build多行,每个座位的信息在一个单独的行上。

一个系列的真实价值是不明确的。 使用a.empty,a.bool(),a.item(),a.any()或a.all()

有问题过滤我的结果数据框与条件。 我想我的结果df提取所有列高于0.25和低于-0.25的列var值。 下面的逻辑给了我一个模棱两可的真值,但是当我在两个单独的操作中分割这个过滤时,它是有效的。 这里发生了什么? 不知道在哪里使用build议的a.empty(),a.bool(),a.item(),a.any()或a.all()。 result = result[(result['var']>0.25) or (result['var']<-0.25)]

如何拆分数据框?

我想将一个dataframe分成几个较小的数据。 这看起来像一个非常微不足道的问题,但我无法从networkingsearchfind解决scheme。

重命名pandas列

我有一个数据表使用pandas和列标签,我需要编辑,以取代原来的列标签。 我想要更改数据表A中原始列名称所在的列名称: ['$a', '$b', '$c', '$d', '$e'] 至 ['a', 'b', 'c', 'd', 'e']. 我有编辑的列名称存储在列表中,但我不知道如何replace列名称。

根据pandas中列中的值从DataFrame中select行

如何从一个DataFrame中select一些基于pandas某些列中的值的行? 在SQL中,我将使用: select * from table where colume_name = some_value. 我试图看pandas的文件,但没有立即find答案。

如果列中的值在一组值列表中,则过滤dataframe行

我有一个Pythonpandas数据框rpt : rpt <class 'pandas.core.frame.DataFrame'> MultiIndex: 47518 entries, ('000002', '20120331') to ('603366', '20091231') Data columns: STK_ID 47518 non-null values STK_Name 47518 non-null values RPT_Date 47518 non-null values sales 47518 non-null values 我可以像这样筛选库存号为'600809'的行: rpt[rpt['STK_ID'] == '600809'] <class 'pandas.core.frame.DataFrame'> MultiIndex: 25 entries, ('600809', '20120331') to ('600809', '20060331') Data columns: STK_ID 25 non-null values STK_Name 25 non-null values […]

如何处理Pandas中的SettingWithCopyWarning?

背景 我只是把我的pandas从0.11升级到了0.13.0rc1。 现在,应用程序正在popup很多新的警告。 其中之一是这样的: E:\FinReporter\FM_EXT.py:449: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_index,col_indexer] = value instead quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE 我想知道究竟是什么意思? 我需要改变一些东西吗? 如果我坚持使用quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE应该如何暂停警告? 提供错误的function def _decode_stock_quote(list_of_150_stk_str): """decode the webpage and return dataframe""" from cStringIO import StringIO str_of_all = "".join(list_of_150_stk_str) quote_df = pd.read_csv(StringIO(str_of_all), […]

将数据框的列拆分为多个列

我想收集表格的数据 before = data.frame(attr = c(1,30,4,6), type=c('foo_and_bar','foo_and_bar_2')) attr type 1 1 foo_and_bar 2 30 foo_and_bar_2 3 4 foo_and_bar 4 6 foo_and_bar_2 并在上面的“ type ”列上使用split()来得到如下所示的结果: attr type_1 type_2 1 1 foo bar 2 30 foo bar_2 3 4 foo bar 4 6 foo bar_2 我想出了一些令人难以置信的复杂的事情,涉及到某种forms的工作,但我从那以后就错了。 成为最好的方法似乎太复杂了。 我可以像下面那样使用strsplit ,但是不清楚如何将它们回到数据框中的2列。 > strsplit(as.character(before$type),'_and_') [[1]] [1] "foo" "bar" [[2]] [1] […]

同时合并列表中的多个data.frames

我有我想要合并的许多data.frames的列表。 这里的问题是,每个data.frame在行数和列数方面有所不同,但它们都共享关键variables(在下面的代码中我称之为"var1"和"var2" )。 如果数据框架在列方面是相同的,那么我只能用rbind来表示,plyr的rbind.fill会做这个工作,但是这些数据并不是这样。 由于merge命令只适用于2个data.frames,所以我转向Internet寻求想法。 我从这里得到了这个,在R 2.7.2中完美的工作,这正是我当时所做的: merge.rec <- function(.list, …){ if(length(.list)==1) return(.list[[1]]) Recall(c(list(merge(.list[[1]], .list[[2]], …)), .list[-(1:2)]), …) } 我会这样调用函数: df <- merge.rec(my.list, by.x = c("var1", "var2"), by.y = c("var1", "var2"), all = T, suffixes=c("", "")) 但是在2.7.2之后的任何R版本中,包括2.11和2.12,这段代码都会失败,并出现以下错误: Error in match.names(clabs, names(xi)) : names do not match previous names (可以肯定的是,我在其他地方看到其他引用,没有解决scheme)。 有什么办法可以解决这个问题吗?