为了测试一些功能,我想从一个字符串创建一个DataFrame。假设我的测试数据如下所示:TESTDATA="""col1;col2;col31;4.4;992;4.5;2003;4.7;654;3.2;140"""将这些数据读入PandasDataFrame的最简单方法是什么? 最佳答案 一个简单的方法是使用StringIO.StringIO(python2)或io.StringIO(python3)并将其传递给pandas.read_csv功能。例如:importsysifsys.version_info[0]
我有一个由列表列表组成的Numpy数组,表示一个带有行标签和列名的二维数组,如下所示:data=array([['','Col1','Col2'],['Row1',1,2],['Row2',3,4]])我希望生成的DataFrame将Row1和Row2作为索引值,并将Col1、Col2作为header值我可以指定索引如下:df=pd.DataFrame(data,index=data[:,0]),但是我不确定如何最好地分配列标题。 最佳答案 您需要将data、index和columns指定为DataFrame构造函数,如:>>>pd
我有一个由列表列表组成的Numpy数组,表示一个带有行标签和列名的二维数组,如下所示:data=array([['','Col1','Col2'],['Row1',1,2],['Row2',3,4]])我希望生成的DataFrame将Row1和Row2作为索引值,并将Col1、Col2作为header值我可以指定索引如下:df=pd.DataFrame(data,index=data[:,0]),但是我不确定如何最好地分配列标题。 最佳答案 您需要将data、index和columns指定为DataFrame构造函数,如:>>>pd
这个问题在这里已经有了答案:DeletingDataFramerowinPandasbasedoncolumnvalue(17个回答)关闭2年前。我有一个pandasDataFrame,我想从中删除特定列中字符串长度大于2的行。我希望能够做到这一点(根据thisanswer):df[(len(df['columnname'])但我只是得到错误:KeyError:u'noitemnamedFalse'我做错了什么?(注意:我知道我可以使用df.dropna()来删除包含任何NaN的行,但我没有看到如何删除行基于条件表达式。) 最佳答案
这个问题在这里已经有了答案:DeletingDataFramerowinPandasbasedoncolumnvalue(17个回答)关闭2年前。我有一个pandasDataFrame,我想从中删除特定列中字符串长度大于2的行。我希望能够做到这一点(根据thisanswer):df[(len(df['columnname'])但我只是得到错误:KeyError:u'noitemnamedFalse'我做错了什么?(注意:我知道我可以使用df.dropna()来删除包含任何NaN的行,但我没有看到如何删除行基于条件表达式。) 最佳答案
我有两个系列s1和s2具有相同(非连续)索引。如何将s1和s2组合为DataFrame中的两列,并将其中一个索引保留为第三列? 最佳答案 我认为concat是一个很好的方法来做到这一点。如果它们存在,它将使用Series的name属性作为列(否则它只是对它们进行编号):In[1]:s1=pd.Series([1,2],index=['A','B'],name='s1')In[2]:s2=pd.Series([3,4],index=['A','B'],name='s2')In[3]:pd.concat([s1,s2],axis=1)O
我有两个系列s1和s2具有相同(非连续)索引。如何将s1和s2组合为DataFrame中的两列,并将其中一个索引保留为第三列? 最佳答案 我认为concat是一个很好的方法来做到这一点。如果它们存在,它将使用Series的name属性作为列(否则它只是对它们进行编号):In[1]:s1=pd.Series([1,2],index=['A','B'],name='s1')In[2]:s2=pd.Series([3,4],index=['A','B'],name='s2')In[3]:pd.concat([s1,s2],axis=1)O
如何将DataFrame的字符串列(dd/mm/yyyy格式)转换为日期时间? 最佳答案 最简单的方法是使用to_datetime:df['col']=pd.to_datetime(df['col'])它还为欧洲时间提供dayfirst参数(但要注意thisisn'tstrict)。它在行动:In[11]:pd.to_datetime(pd.Series(['05/23/2005']))Out[11]:02005-05-2300:00:00dtype:datetime64[ns]您可以传递特定的format:In[12]:pd.to
如何将DataFrame的字符串列(dd/mm/yyyy格式)转换为日期时间? 最佳答案 最简单的方法是使用to_datetime:df['col']=pd.to_datetime(df['col'])它还为欧洲时间提供dayfirst参数(但要注意thisisn'tstrict)。它在行动:In[11]:pd.to_datetime(pd.Series(['05/23/2005']))Out[11]:02005-05-2300:00:00dtype:datetime64[ns]您可以传递特定的format:In[12]:pd.to
我想在我的数据的每一列中找到NaN的数量。 最佳答案 使用isna()方法(或者它的别名isnull()也与旧版pandas>>>s=pd.Series([1,2,3,np.nan,np.nan])>>>s.isna().sum()#ors.isnull().sum()forolderpandasversions2对于多个列,这也适用:>>>df=pd.DataFrame({'a':[1,2,np.nan],'b':[np.nan,1,np.nan]})>>>df.isna().sum()a1b2dtype:int64