Questions tagged «dataframe»

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

5
将缺失的日期添加到熊猫数据框
我的数据可以在给定日期包含多个事件,也可以在一个日期包含否事件。我接受这些事件,按日期计数并绘制它们。但是,当我绘制它们时,我的两个系列并不总是匹配。 idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max()) s = df.groupby(['simpleDate']).size() 在上面的代码中,idx变为30个日期范围。2013/09/01至2013/09/30但是S可能只有25或26天,因为在给定日期没有事件发生。然后,当我尝试绘制时,由于大小不匹配,我得到一个AssertionError: fig, ax = plt.subplots() ax.bar(idx.to_pydatetime(), s, color='green') 解决这个问题的正确方法是什么?我是否要从IDX中删除没有值的日期,或者(我希望这样做)是将序列中缺少的日期添加为0(我希望这样做)?我希望有30天的完整图表(值为0)。如果这种方法正确,那么有关如何开始使用的任何建议?我需要某种动态reindex功能吗? 这是S(df.groupby(['simpleDate']).size() )的代码段,请注意没有输入04和05。 09-02-2013 2 09-03-2013 10 09-06-2013 5 09-07-2013 1
126 python  date  plot  pandas  dataframe 

4
熊猫中的datetime dtypes read_csv
我正在读取具有多个datetime列的csv文件。我需要在读取文件时设置数据类型,但是日期时间似乎是个问题。例如: headers = ['col1', 'col2', 'col3', 'col4'] dtypes = ['datetime', 'datetime', 'str', 'float'] pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes) 运行时出现错误: TypeError:不了解数据类型“ datetime” 事后通过pandas.to_datetime()转换列不是一个选项,我不知道哪些列将是datetime对象。该信息可以更改,并且可以从通知我的dtypes列表的任何信息中获取。 另外,我尝试用numpy.genfromtxt加载csv文件,在该函数中设置dtypes,然后转换为pandas.dataframe,但它会使数据乱码。任何帮助是极大的赞赏!

4
如何从熊猫的两列中形成元组列
我有一个Pandas DataFrame,我想将'lat'和'long'列组合成一个元组。 <class 'pandas.core.frame.DataFrame'> Int64Index: 205482 entries, 0 to 209018 Data columns: Month 205482 non-null values Reported by 205482 non-null values Falls within 205482 non-null values Easting 205482 non-null values Northing 205482 non-null values Location 205482 non-null values Crime type 205482 non-null values long 205482 non-null values lat 205482 non-null …

10
将Dataframe保存到csv直接保存到s3 Python
我有一个要上传到新CSV文件的pandas DataFrame。问题是在将文件传输到s3之前,我不想在本地保存文件。是否有像to_csv这样的方法可以将数据帧直接写入s3?我正在使用boto3。 这是我到目前为止的内容: import boto3 s3 = boto3.client('s3', aws_access_key_id='key', aws_secret_access_key='secret_key') read_file = s3.get_object(Bucket, Key) df = pd.read_csv(read_file['Body']) # Make alterations to DataFrame # Then export DataFrame to CSV through direct transfer to s3

12
data.frame行到列表
我有一个data.frame,我想按行将其转换为列表,这意味着每行将对应于其自己的列表元素。换句话说,我想要一个只要data.frame有行的列表。 到目前为止,我已经按照以下方式解决了这个问题,但是我想知道是否有更好的方法来解决这个问题。 xy.df <- data.frame(x = runif(10), y = runif(10)) # pre-allocate a list and fill it with a loop xy.list <- vector("list", nrow(xy.df)) for (i in 1:nrow(xy.df)) { xy.list[[i]] <- xy.df[i,] }
123 list  r  dataframe 

2
如何使用Pandas创建随机整数的DataFrame?
我知道如果我使用randn, import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD')) 给了我我想要的东西,但是带有正态分布的元素。但是,如果我只想要随机整数怎么办? randint通过提供范围来工作,但不能像提供数组那样randn工作。那么我该如何使用某个范围之间的随机整数呢?

3
查找具有每一行最大值的列名
我有一个像这样的DataFrame: In [7]: frame.head() Out[7]: Communications and Search Business General Lifestyle 0 0.745763 0.050847 0.118644 0.084746 0 0.333333 0.000000 0.583333 0.083333 0 0.617021 0.042553 0.297872 0.042553 0 0.435897 0.000000 0.410256 0.153846 0 0.358974 0.076923 0.410256 0.153846 在这里,我想问一下如何获取每一行具有最大值的列名,所需的输出是这样的: In [7]: frame.head() Out[7]: Communications and Search Business General Lifestyle Max 0 0.745763 …
122 python  pandas  dataframe  max 

8
如何在一次分配中向熊猫数据框添加多列?
我是熊猫的新手,试图弄清楚如何同时向熊猫添加多列。感谢您的帮助。理想情况下,我希望一步一步完成此操作,而不是重复多次... import pandas as pd df = {'col_1': [0, 1, 2, 3], 'col_2': [4, 5, 6, 7]} df = pd.DataFrame(df) df[[ 'column_new_1', 'column_new_2','column_new_3']] = [np.nan, 'dogs',3] #thought this would work here...
122 python  pandas  dataframe 

7
如何将行追加到R数据框
我环顾了StackOverflow,但是找不到针对我的问题的解决方案,该解决方案涉及将行附加到R数据帧。 我正在初始化一个空的2列数据帧,如下所示。 df = data.frame(x = numeric(), y = character()) 然后,我的目标是遍历值列表,并在每次迭代中将一个值附加到列表末尾。我从以下代码开始。 for (i in 1:10) { df$x = rbind(df$x, i) df$y = rbind(df$y, toString(i)) } 我也试图功能c,append以及merge没有成功。如果您有任何建议,请告诉我。
121 r  merge  append  dataframe  rows 

3
获取熊猫应用函数中的行的索引
我正在尝试在整个DataFramePandas中应用的函数中访问行的索引。我有这样的事情: df = pandas.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c']) >>> df a b c 0 1 2 3 1 4 5 6 我将定义一个函数来访问给定行的元素 def rowFunc(row): return row['a'] + row['b'] * row['c'] 我可以这样应用它: df['d'] = df.apply(rowFunc, axis=1) >>> df a b c d 0 1 2 3 7 1 4 5 6 34 太棒了!现在,如果我想将索引合并到函数中怎么办?DataFrame在添加之前,该行中任何给定行的索引都d将是Index([u'a', u'b', …
121 python  pandas  dataframe 

14
计算每个组中的行数
我有一个数据框,我想计算每个组中的行数。我通常使用该aggregate函数对数据求和,如下所示: df2 <- aggregate(x ~ Year + Month, data = df1, sum) 现在,我想对观察值进行计数,但似乎找不到的正确论点FUN。凭直觉,我认为应该是这样的: df2 <- aggregate(x ~ Year + Month, data = df1, count) 但是,没有这种运气。 有任何想法吗? 一些玩具数据: set.seed(2) df1 <- data.frame(x = 1:20, Year = sample(2012:2014, 20, replace = TRUE), Month = sample(month.abb[1:3], 20, replace = TRUE))
121 r  dataframe  aggregate  r-faq 

8
使用$和字符值动态选择数据框列
我有一个具有不同列名的向量,并且我希望能够遍历每个列名,以便从data.frame中提取该列。例如,考虑数据集mtcars和一些存储在字符向量中的变量名cols。当我尝试mtcars使用的动态子集选择变量时cols,这些工作会进一步 cols <- c("mpg", "cyl", "am") col <- cols[1] col # [1] "mpg" mtcars$col # NULL mtcars$cols[1] # NULL 我怎样才能得到这些返回相同的值 mtcars$mpg 此外,我该如何遍历所有列cols以某种形式获取值。 for(x in seq_along(cols)) { value <- mtcars[ order(mtcars$cols[x]), ] }
120 r  dataframe  r-faq 

5
将data.frame列名传递给函数
我正在尝试编写一个函数来接受data.frame(x)和column来自它的a。该函数在x上执行一些计算,然后返回另一个data.frame。我坚持将最佳实践方法传递给函数的列名。 两个最小的例子fun1和fun2下面产生所需的结果,能够执行操作x$column,使用max(),例如,但是,两者都依靠(至少对我而言)看起来不雅 致电substitute()并可能eval() 需要将列名作为字符向量传递。 fun1 <- function(x, column){ do.call("max", list(substitute(x[a], list(a = column)))) } fun2 <- function(x, column){ max(eval((substitute(x[a], list(a = column))))) } df <- data.frame(B = rnorm(10)) fun1(df, "B") fun2(df, "B") 例如,我希望能够将函数调用fun(df, B)为。我考虑过但尚未尝试过的其他选择: column作为列号的整数传递。我认为这样可以避免substitute()。理想情况下,函数可以接受任何一个。 with(x, get(column)),但即使有效,我认为这仍然需要 substitute 利用formula()和match.call(),我都没有丰富的经验。 子问题:do.call()比起首选eval()?
119 r  dataframe  r-faq 

3
如何在大熊猫中测试字符串是否包含列表中的子字符串之一?
有没有这将是一个组合的等同的任何功能df.isin()和df[col].str.contains()? 例如,假设我有系列 s = pd.Series(['cat','hat','dog','fog','pet']),并且我想找到s包含的任何一个的所有地方['og', 'at'],那么我想得到除“宠物”以外的所有东西。 我有一个解决方案,但这很不雅致: searchfor = ['og', 'at'] found = [s.str.contains(x) for x in searchfor] result = pd.DataFrame[found] result.any() 有一个更好的方法吗?

1
熊猫使用什么规则生成视图与副本?
我对Pandas决定从数据框中进行选择是原始数据框的副本或原始数据视图时使用的规则感到困惑。 例如,如果我有 df = pd.DataFrame(np.random.randn(8,8), columns=list('ABCDEFGH'), index=range(1,9)) 我了解a会query传回副本,因此类似 foo = df.query('2 < index <= 5') foo.loc[:,'E'] = 40 将对原始数据帧无效df。我也了解标量或命名切片返回一个视图,因此对它们的赋值(例如 df.iloc[3] = 70 要么 df.ix[1,'B':'E'] = 222 会改变df。但是当涉及到更复杂的案件时,我迷失了。例如, df[df.C <= df.B] = 7654321 变化df,但是 df[df.C <= df.B].ix[:,'B':'E'] 才不是。 是否有一个熊猫正在使用的简单规则,我只是想念它?在这些特定情况下发生了什么;尤其是,如何更改满足特定查询的数据框中的所有值(或值的子集)(就像我在上面的最后一个示例中尝试的那样)? 注意:这和这个问题不一样;并且我已经阅读了文档,但并未对此有所启发。我还阅读了有关此主题的“相关”问题,但我仍然缺少Pandas使用的简单规则,以及如何将其应用于(例如)修改值(或值的子集)在满足特定查询的数据框中。

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.