Questions tagged «dataframe»

数据框是表格数据结构。通常,它包含数据,其中行是观察值,列是各种类型的变量。虽然“数据框”或“数据框”是几种语言用于此概念的术语(R,Apache Spark,deedle,Maple,Python中的pandas库和Julia中的DataFrames库),但“表”是MATLAB和SQL。

5
将熊猫数据框中的列向上移一格?
我有一个熊猫数据框。我想“落后”我的专栏之一。例如,这意味着将整个列“ gdp”上移一位,然后删除其余行底部的所有多余数据,以使所有列的长度再次相等。 df = y gdp cap 0 1 2 5 1 2 3 9 2 8 7 2 3 3 4 7 4 6 7 7 df_lag = y gdp cap 0 1 3 5 1 2 7 9 2 8 4 2 3 3 7 7 无论如何要这样做?

7
按组选择第一行
从这样的数据框中 test <- data.frame('id'= rep(1:5,2), 'string'= LETTERS[1:10]) test <- test[order(test$id), ] rownames(test) <- 1:10 > test id string 1 1 A 2 1 F 3 2 B 4 2 G 5 3 C 6 3 H 7 4 D 8 4 I 9 5 E 10 5 J 我想用每个ID /字符串对的第一行创建一个新的。如果sqldf接受其中的R代码,则查询可能如下所示: …
85 r  dataframe  sqldf 

2
在Pandas DataFrame对象中重新定义索引
我正在尝试重新索引熊猫DataFrame对象,像这样, From: a b c 0 1 2 3 1 10 11 12 2 20 21 22 To : b c 1 2 3 10 11 12 20 21 22 我正在如下所示进行操作,并且得到了错误的答案。有关如何执行此操作的任何线索? >>> col = ['a','b','c'] >>> data = DataFrame([[1,2,3],[10,11,12],[20,21,22]],columns=col) >>> data a b c 0 1 2 3 1 10 …

7
两个熊猫列的字符串串联
我有以下内容DataFrame: from pandas import * df = DataFrame({'foo':['a','b','c'], 'bar':[1, 2, 3]}) 看起来像这样: bar foo 0 1 a 1 2 b 2 3 c 现在我想拥有类似的东西: bar 0 1 is a 1 2 is b 2 3 is c 我该如何实现?我尝试了以下方法: df['foo'] = '%s is %s' % (df['bar'], df['foo']) 但这给我一个错误的结果: >>>print df.ix[0] bar …

2
通过列名称连接熊猫数据框
我有两个具有以下列名称的数据框: frame_1: event_id, date, time, county_ID frame_2: countyid, state 我想通过加入(左)on获得以下列的数据框county_ID = countyid: joined_dataframe event_id, date, time, county, state 如果我要连接的列不是索引,我无法弄清楚该怎么做。最简单的方法是什么?谢谢!

7
如何删除仅包含NA的列?
我有一个data.frame,其中包含一些具有所有NA值的列,如何从data.frame中删除它们。 我可以使用该功能吗 na.omit(...) 指定一些其他参数?
83 r  dataframe  na 

3
合并两个熊猫数据框(在同一列上连接)
我有2个数据框: restaurant_ids_dataframe Data columns (total 13 columns): business_id 4503 non-null values categories 4503 non-null values city 4503 non-null values full_address 4503 non-null values latitude 4503 non-null values longitude 4503 non-null values name 4503 non-null values neighborhoods 4503 non-null values open 4503 non-null values review_count 4503 non-null values stars 4503 non-null …

6
如何合并Series和DataFrame
如果您是来这里寻找有关如何合并aDataFrame和Series索引的信息,请查看此答案。 OP的最初意图是询问如何将系列元素作为列分配给另一个DataFrame。如果您想知道答案,请查看EdChum接受的答案。 我能想到的最好的是 df = pd.DataFrame({'a':[1, 2], 'b':[3, 4]}) # see EDIT below s = pd.Series({'s1':5, 's2':6}) for name in s.index: df[name] = s[name] a b s1 s2 0 1 3 5 6 1 2 4 5 6 有人可以建议更好的语法/更快的方法吗? 我的尝试: df.merge(s) AttributeError: 'Series' object has no attribute 'columns' 和 df.join(s) …


10
如何为所选列替换表中的NA值
关于替换NA值的文章很多。我知道可以用以下内容替换下表/框架中的NA: x[is.na(x)]<-0 但是,如果我想将其限制为仅某些列呢?让我给你看一个例子。 首先,让我们从数据集开始。 set.seed(1234) x <- data.frame(a=sample(c(1,2,NA), 10, replace=T), b=sample(c(1,2,NA), 10, replace=T), c=sample(c(1:5,NA), 10, replace=T)) 这使: a b c 1 1 NA 2 2 2 2 2 3 2 1 1 4 2 NA 1 5 NA 1 2 6 2 NA 5 7 1 1 4 8 1 …

15
通过名称重命名多列
有人应该已经问过这个问题,但是我找不到答案。说我有: x = data.frame(q=1,w=2,e=3, ...and many many columns...) 将我不一定知道位置的列的任意子集重命名为其他任意名称的最优雅方法是什么? 例如说,我要重命名"q"和"e"成"A"和"B",什么是最优雅的代码来做到这一点? 显然,我可以做一个循环: oldnames = c("q","e") newnames = c("A","B") for(i in 1:2) names(x)[names(x) == oldnames[i]] = newnames[i] 但是我想知道是否有更好的方法?也许使用某些软件包?(plyr::rename等)
81 r  dataframe  rename  r-faq 

5
Python Pandas如何将groupby操作结果分配回父数据帧中的列?
我在IPython中具有以下数据框,其中每一行都是一只股票: In [261]: bdata Out[261]: <class 'pandas.core.frame.DataFrame'> Int64Index: 21210 entries, 0 to 21209 Data columns: BloombergTicker 21206 non-null values Company 21210 non-null values Country 21210 non-null values MarketCap 21210 non-null values PriceReturn 21210 non-null values SEDOL 21210 non-null values yearmonth 21210 non-null values dtypes: float64(2), int64(1), object(4) 我想应用一个groupby操作,计算“ yearmonth”列中每个日期的所有内容的上限加权平均回报。 这按预期工作: …

1
将数据帧转换为data.table而不复制
我有一个很大的数据帧(大约数GB),我想将其转换为data.table。使用as.data.table创建数据帧的副本,这意味着我需要可用内存至少为数据大小的两倍。有没有复制的方法吗? 这是一个简单的示例来演示: library(data.table) N <- 1e6 K <- 1e2 data <- as.data.frame(rep(data.frame(rnorm(N)), K)) gc(reset=TRUE) tracemem(data) data <- as.data.table(data) gc() 输出: library(data.table) # data.table 1.8.10 For help type: help("data.table") N <- 1e6 K <- 1e2 data <- as.data.frame(rep(data.frame(rnorm(N)), K)) gc(reset=TRUE) # used (Mb) gc trigger (Mb) max used (Mb) # Ncells …

4
在熊猫数据框中显示具有一个或多个NaN值的行
我有一个数据框,其中某些行包含缺失值。 In [31]: df.head() Out[31]: alpha1 alpha2 gamma1 gamma2 chi2min filename M66_MI_NSRh35d32kpoints.dat 0.8016 0.9283 1.000000 0.074804 3.985599e+01 F71_sMI_DMRI51d.dat 0.0000 0.0000 NaN 0.000000 1.000000e+25 F62_sMI_St22d7.dat 1.7210 3.8330 0.237480 0.150000 1.091832e+01 F41_Car_HOC498d.dat 1.1670 2.8090 0.364190 0.300000 7.966335e+00 F78_MI_547d.dat 1.8970 5.4590 0.095319 0.100000 2.593468e+01 我想在屏幕上显示那些行。如果尝试的话df.isnull(),它将使用True和给出较长的数据帧False。有什么方法可以选择这些行并将它们打印在屏幕上?
81 python  pandas  dataframe  nan 

8
Python:熊猫合并了多个数据框
我有不同的数据框,需要根据日期列将它们合并在一起。如果我只有两个数据框,则可以使用df1.merge(df2, on='date')来对三个数据框进行处理df1.merge(df2.merge(df3, on='date'), on='date'),但是,使用多个数据框进行处理将变得非常复杂且难以理解。 所有数据框都有一个共同的列- date,但是它们没有相同数量的行或列,而我只需要每个数据框共有每个日期的那些行。 因此,我正在尝试编写一个递归函数,该函数返回一个包含所有数据的数据框,但是它不起作用。那我应该如何合并多个数据框? 我试图diferent方式和喜欢了错误out of range,keyerror 0/1/2/3和can not merge DataFrame with instance of type <class 'NoneType'>。 这是我写的脚本: dfs = [df1, df2, df3] # list of dataframes def mergefiles(dfs, countfiles, i=0): if i == (countfiles - 2): # it gets to the second to last and merges …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.