我正在阅读“Python for Data Analysis”这本书,但在“Example: 2012联邦选举委员会数据库”部分将数据读取到DataFrame时遇到了问题。问题是其中一列数据总是被设置为索引列,即使index_col参数设置为None也是如此。
下面是指向数据的链接:。
下面是加载代码(为了节省检查时间,我设置了nrows=10):
import pandas as pd
fec = pd.read_csv('P00000001-ALL.csv',nrows=10,index_col=None)
为了保持简短,我排除了数据列输出,但以下是我的输出(请不要使用索引
我有一个Pandas DataFrame,包含i、行和j列。我希望将这个DataFrame中的值替换为第二个DataFrame中的所有值,后者具有相同的i行,但有k列,其中k是j的子集。
有效的办法是:
for col in df2.columns:
df1[col] = df2[col]
有没有一种更快、更无头绪的方法?
要将多个变量传递给一个普通的python函数,您只需编写如下代码:
def a_function(date,string,float):
do something....
convert string to int,
date = date + (float * int) days
return date
在使用Pandas DataFrames时,我知道您可以基于一个列的内容创建一个新列,如下所示:
df['new_col']) = df['column_A'].map(a_function)
# This m
由于matplotlib不支持pandas.TimeStamp numpy.datetime64,而有,因此我决定将原生pandas date列转换为纯python datetime.datetime,以便更容易绘制散点图。
但是:
t = pd.DataFrame({'date': [pd.to_datetime('2012-12-31')]})
t.dtypes # date datetime64[ns], as expected
pure_python_datetime_array = t.date.dt.to_pydatetime() # work
我需要获取每个列的类型,以便对其进行适当的预处理。
目前,我通过以下方法做到这一点:
import pandas as pd
# input is of type List[List[any]]
# but has one type (int, float, str, bool) per column
df = pd.DataFrame(input, columns=key_labels)
column_types = dict(df.dtypes)
matrix = df.values
由于我只使用pandas获取数据类型(每列),而使用numpy获取其他所有内容,因此我希望将panda
这个问题很奇怪,因为我知道如何做某事,但我不知道为什么我不能用另一种方法。
假设简单的数据帧:
import pandasas pd
a = pd.DataFrame([[0,1], [2,3]])
我可以很容易地对这个数据帧进行切片,第一列是a[[0]],第二列是a[[1]]。很简单,不是吗?
现在,让我们有更复杂的数据帧。这是我的代码的一部分:
var_vec = [i for i in range(100)]
num_of_sites = 100
row_names = ["_".join(["loc", str(i)]) for i in
我有一个像这样的熊猫数据帧:
year week city avg_rank
0 2016 52 Paris 1
1 2016 52 Gif-sur-Yvette 2
2 2016 52 Paris 1
3 2017 1 Paris 4
4 2016 52 Paris 3
5 2016 52 Paris
import pandas as pd
df_run = pd.read_csv('UserEventSummary.csv')
df_run.accountId[0] = 'first-' + str(df_run.accountId[0])
第三行给出了以下错误:
/home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages/ipykernel/__main__.py:1: SettingWithCopyWarning:
A value is trying to be set on a
我正在使用python pandas进行数据分析,并且我想更改dataframe中序列的名称。
这是可行的,但似乎效率很低:
AA = pandas.DataFrame( A )
for series in A:
AA[A_prefix+series] = A[series]
del A[series]
有没有办法就地更改系列名称?
我在pandas中设置了一个简单的DataFrame:
a = pandas.DataFrame([[1,2,3], [4,5,6], [7,8,9]], columns=['a','b','c'])
>>> print a
a b c
0 1 2 3
1 4 5 6
2 7 8 9
我希望能够更改的最后一行中的单个元素。在pandas==0.13.1中,我可以使用以下代码:
a.iloc[-1]['a'] = 77
>>> print a
a b c
0