Questions tagged «pandas»

Pandas是用于数据处理和分析的Python库,例如,在统计,实验科学结果,计量经济学或金融学中常见的数据框,多维时间序列和横截面数据集。Pandas是Python中主要的数据科学库之一。

6
大熊猫:DataFrame行上的复杂过滤器
我想通过每行的功能来过滤行,例如 def f(row): return sin(row['velocity'])/np.prod(['masses']) > 5 df = pandas.DataFrame(...) filtered = df[apply_to_all_rows(df, f)] 或者再举一个更复杂,人为的例子, def g(row): if row['col1'].method1() == 1: val = row['col1'].method2() / row['col1'].method3(row['col3'], row['col4']) else: val = row['col2'].method5(row['col6']) return np.sin(val) df = pandas.DataFrame(...) filtered = df[apply_to_all_rows(df, g)] 我该怎么办?
85 python  pandas 

3
如何给熊猫/ matplotlib条形图自定义颜色
我刚刚开始使用pandas / matplotlib替代Excel来生成堆积的条形图。我遇到了一个问题 (1)默认颜色表中只有5种颜色,因此如果我的类别超过5种,则颜色会重复。如何指定更多颜色?理想情况下,具有起始颜色和结束颜色的渐变,以及在两者之间动态生成n种颜色的方法? (2)颜色在视觉上不太令人满意。如何指定一组自定义的n种颜色?或者,渐变也将起作用。 下面的示例说明了以上两个方面: 4 from matplotlib import pyplot 5 from pandas import * 6 import random 7 8 x = [{i:random.randint(1,5)} for i in range(10)] 9 df = DataFrame(x) 10 11 df.plot(kind='bar', stacked=True) 输出是这样的:

8
熊猫:按时间间隔滚动平均值
我是Pandas的新手。。。我有一堆轮询数据。我想计算一个滚动平均值,以便基于三天的窗口来获取每天的估算值。据我从这个问题可以理解,rolling_ *函数根据指定数量的值而不是特定的日期时间范围来计算窗口。 有实现该功能的其他功能吗?还是我坚持自己写? 编辑: 样本输入数据: polls_subset.tail(20) Out[185]: favorable unfavorable other enddate 2012-10-25 0.48 0.49 0.03 2012-10-25 0.51 0.48 0.02 2012-10-27 0.51 0.47 0.02 2012-10-26 0.56 0.40 0.04 2012-10-28 0.48 0.49 0.04 2012-10-28 0.46 0.46 0.09 2012-10-28 0.48 0.49 0.03 2012-10-28 0.49 0.48 0.03 2012-10-30 0.53 0.45 0.02 2012-11-01 0.49 0.49 …

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 …


6
python pandas dataframe,是按值传递还是按引用传递
如果我将数据帧传递给函数并在函数内部对其进行修改,那么它是按值传递还是按引用传递? 我运行以下代码 a = pd.DataFrame({'a':[1,2], 'b':[3,4]}) def letgo(df): df = df.drop('b',axis=1) letgo(a) a函数调用后,的值不变。这是否意味着价值传递? 我也尝试了以下 xx = np.array([[1,2], [3,4]]) def letgo2(x): x[1,1] = 100 def letgo3(x): x = np.array([[3,3],[3,3]]) 事实证明letgo2(),变化xx并letgo3()没有。为什么会这样呢?

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 如果我要连接的列不是索引,我无法弄清楚该怎么做。最简单的方法是什么?谢谢!

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 …

9
熊猫:通过每组平均值填充缺失值
这应该很简单,但是我发现的最接近的内容是这篇文章: pandas:填充组中的缺失值,但我仍然无法解决我的问题...。 假设我有以下数据框 df = pd.DataFrame({'value': [1, np.nan, np.nan, 2, 3, 1, 3, np.nan, 3], 'name': ['A','A', 'B','B','B','B', 'C','C','C']}) name value 0 A 1 1 A NaN 2 B NaN 3 B 2 4 B 3 5 B 1 6 C 3 7 C NaN 8 C 3 我想在每个“名称”组中用平均值填写“ NaN”,即 …

6
数据帧中最后一个元素的访问索引
我一直在寻找这个,但是我似乎找不到它(尽管它必须是非常琐碎的)。 我的问题是我想检索数据帧的第一个条目和最后一个条目的列的值。但是,如果我这样做: df.ix[0]['date'] 我得到: datetime.datetime(2011, 1, 10, 16, 0) 但是如果我这样做: df[-1:]['date'] 我得到: myIndex 13 2011-12-20 16:00:00 Name: mydate 格式不同。理想情况下,我希望能够访问数据帧的最后一个索引的值,但我找不到方法。 我什至尝试使用索引值创建一列(IndexCopy)并尝试: df.ix[df.tail(1)['IndexCopy']]['mydate'] 但这也会产生不同的格式(因为df.tail(1)['IndexCopy']不会输出简单的整数)。 有任何想法吗?
83 python  pandas 

4
get_dummies(Pandas)和OneHotEncoder(Scikit-learn)之间的优缺点是什么?
我正在学习将机器学习分类器将分类变量转换为数字的不同方法。我遇到了这种pd.get_dummies方法,sklearn.preprocessing.OneHotEncoder()我想看看它们在性能和用法上有何不同。 我发现关于如何使用教程OneHotEncoder()上https://xgdgsc.wordpress.com/2015/03/20/note-on-using-onehotencoder-in-scikit-learn-to-work-on-categorical-features/自该sklearn文档对该功能的帮助不是很大。我有一种感觉,我做得不正确...但是 有人能解释一下使用pd.dummiesover的利弊sklearn.preprocessing.OneHotEncoder()吗?我知道这OneHotEncoder()为您提供了一个稀疏矩阵,但除此之外,我不确定该如何使用以及该pandas方法有什么好处。我使用效率低下吗? import pandas as pd import numpy as np from sklearn.datasets import load_iris sns.set() %matplotlib inline #Iris Plot iris = load_iris() n_samples, m_features = iris.data.shape #Load Data X, y = iris.data, iris.target D_target_dummy = dict(zip(np.arange(iris.target_names.shape[0]), iris.target_names)) DF_data = pd.DataFrame(X,columns=iris.feature_names) DF_data["target"] = pd.Series(y).map(D_target_dummy) #sepal length (cm) sepal width (cm) …

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) …

2
如何从pandas groupby()。sum()的输出中创建新列?
尝试从groupby计算中创建新列。在下面的代码中,我获得了每个日期的正确计算值(请参阅下面的组),但是当我尝试df['Data4']用它创建一个新列()时,我得到了NaN。因此,我正在尝试在数据框中使用Data3所有日期的总和创建一个新列,并将其应用于每个日期行。例如,2015-05-08位于2行中(总计为50 + 5 = 55),在这个新列中,我希望两行都具有55。 import pandas as pd import numpy as np from pandas import DataFrame df = pd.DataFrame({ 'Date' : ['2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05', '2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05'], 'Sym' : ['aapl', 'aapl', 'aapl', 'aapl', 'aaww', 'aaww', 'aaww', 'aaww'], 'Data2': [11, 8, 10, 15, 110, 60, 100, 40], 'Data3': …

2
将pandas.Series直方图保存到文件
在ipython Notebook中,首先创建一个pandas Series对象,然后通过调用实例方法.hist(),浏览器将显示该图。 我想知道如何将该图形保存到文件中(不是通过右键单击另存为,而是脚本中所需的命令)。

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.