草庐IT

Pandas-Datareader

全部标签

python - 防止 pandas read_csv 将第一行视为列名的标题

我正在使用pd.read_csv读取pandasDataFrame。我想将第一行保留为数据,但它不断转换为列名。我试过header=False但这完全删除了它。(注意我的输入数据:我有一个字符串(st='\n'.join(lst)),我将其转换为类似文件的对象(io.StringIO(st)),然后从该文件对象构建csv。) 最佳答案 您希望header=None将False类型提升为int为0参见docs强调我的:header:intorlistofints,default‘infer’Rownumber(s)touseasthe

python - 如何获取 pandas.Series 或 pandas.DataFrame 中第 i 个项目的索引?

我正在尝试获取我拥有的Series中第6项的索引。这是头部的样子:UnitedStates1.536434e+13China6.348609e+12Japan5.542208e+12Germany3.493025e+12France2.681725e+12为了获取第6个索引名称(排序后的第6个国家/地区),我通常使用s.head(6)并从那里获取第6个索引。s.head(6)给我:UnitedStates1.536434e+13China6.348609e+12Japan5.542208e+12Germany3.493025e+12France2.681725e+12UnitedKin

python - 如何从一个 pandas 数据帧中减去另一个数据帧的行?

我想做的操作类似于合并。例如,通过inner合并,我们得到一个数据框,其中包含存在于第一个和第二个数据框中的行。通过outer合并,我们得到一个数据帧,它要么出现在第一个数据帧中,要么出现在第二个数据帧中。我需要的是一个数据框,其中包含存在于第一个数据框中但不存在于第二个数据框中的行?有没有一种快速而优雅的方法来做到这一点? 最佳答案 考虑以下:df_one是第一个DataFramedf_two是第二个DataFrame出现在第一个DataFrame中,不出现在第二个DataFrame中解决方案:通过索引df=df_one[~df_

python - 将 Pandas DataFrame 中的列值与 "NaN"值连接起来

我正在尝试将PandasDataFrame列与NaN值连接起来。In[96]:df=pd.DataFrame({'col1':["1","1","2","2","3","3"],'col2':["p1","p2","p1",np.nan,"p2",np.nan],'col3':["A","B","C","D","E","F"]})In[97]:dfOut[97]:col1col2col301p1A11p2B22p1C32NaND43p2E53NaNFIn[98]:df['concatenated']=df['col2']+','+df['col3']In[99]:dfOut[99]:c

python - Pandas 仅从数据框中选择数字或整数字段

我有这个Pandas数据框(df):AB01green12red2sblue33yellow4bblack类型是对象。我会选择A值为整数或数字的记录:AB01green12red33yellow谢谢 最佳答案 在数据帧上调用apply(注意双方括号df[['A']]而不是df['A'])并调用字符串方法isdigit(),然后我们设置参数axis=1以逐行应用lambda函数。这里发生的是索引用于创建bool掩码。In[66]:df[df[['A']].apply(lambdax:x[0].isdigit(),axis=1)]Out

python - 如何将 pandas 系列写入/读取 csv?

我无法弄清楚如何正确地编写/读取系列...以下(以及它的许多变体)导致读取系列与书面系列不同...请注意该系列被读入一个DataFrame而不是一个系列。In[55]:s=pd.Series({'a':1,'b':2})In[56]:sOut[56]:a1b2In[57]:s.to_csv('/tmp/s.csv')In[58]:!cat/tmp/s.csva,1b,2In[59]:pd.read_csv('/tmp/s.csv')Out[59]:a10b2 最佳答案 In[3]:s.to_csv('/home/wesm/tmp/s

python - 从 Pandas 数据框中删除闰年

我知道了。数据框:datetime2012-01-01125.50102012-01-02125.50102012-01-03125.50102012-02-04125.50102012-02-05125.50102012-02-29125.50102012-02-28125.50102016-01-07125.50102016-01-08125.50102016-02-2981.6237我想删除与2月29日对应的所有行,导致foll。数据框:datetime2012-01-01125.50102012-01-02125.50102012-01-03125.50102012-02-04

python - 如何获取 Pandas 数据框中单元格值的长度?

有一个pandas数据框:idxEvent0abc/def1abc2abc/def/hij运行:df['EventItem']=df['Event'].str.split("/")得到:idxEventItem0['abc','def']1['abc']2['abc','def','hij']想要获取每个cell的长度,运行df['EventCount']=len(df['EventItem'])得到:idxEventCount061626如何获得正确的计数?idxEventCount021123 最佳答案 您可以使用.str.le

python - pandas DataFrame 中的级别是什么?

我一直在阅读文档,许多解释和示例都将levels视为理所当然。恕我直言,文档缺乏对数据结构和定义的基本解释。数据框中的级别是什么?MultiIndex索引中的级别是什么? 最佳答案 我在分析myownquestion的答案时偶然发现了这个问题,但我觉得约翰的回答不够令人满意。经过几次实验后,我认为我理解了这些级别并决定分享:简答:级别是索引或列的一部分。长答案:我认为这个多列DataFrame.groupby示例很好地说明了索引级别。假设我们有时间记录问题报告数据:report=pd.DataFrame([[1,10,'John']

python - Pandas:根据更复杂的标准选择和修改数据框

我在看this和this线程,虽然我的问题并没有太大不同,但它有一些不同之处。我有一个充满floats的数据框,我想用字符串替换它。说:ABCA01.513B0.5100.27.3C1.3340.01对于这张表,我想用几个条件替换,但只有第一个替换有效:df[df1)&(df10)&(df50]='H'#Doesn'twork如果我改为根据float选择第二行,仍然不起作用:((df.applymap(type)==float)&(df1))#Doesn'twork我想知道如何在此处或任何其他方式应用pd.DataFrame().mask。我该如何解决?或者,我知道我可以逐列阅读并在每