草庐IT

python - Pandas 需要关闭连接吗?

使用pandas“read_sql_query”时,需要关闭连接吗?或者我应该使用“with”语句?或者我可以只使用以下内容并做好吗?fromsqlalchemyimportcreate_engineimportpandasaspdsql="""SELECT*FROMTable_Name;"""engine=create_engine('blah')df=pd.read_sql_query(sql,engine)printdf.head() 最佳答案 对于发现此问题并想知道如何在此示例中关闭连接的任何人,followingmetho

python - 为什么 Pandas 串联 (pandas.concat) 的内存效率如此之低?

我尝试将大约30GB的数据(在大约900个数据帧的列表中)连接在一起。我正在使用的机器是一个功能适中的LinuxBox,内存约为256GB。但是,当我尝试连接我的文件时,我很快就用完了可用的内存。我已经尝试了各种解决方法来解决这个问题(用for循环等小批量连接),但我仍然无法将它们连接起来。两个问题浮现在脑海:有没有其他人处理过这个问题并找到了有效的解决方法?我不能使用直接追加,因为我需要pd.concat()中的join='outer'参数的“列合并”(因为缺少更好的词)功能>.为什么Pandas连接(我知道它只是调用numpy.concatenate)对内存的使用效率如此低?我还应

python - 为什么 Pandas 串联 (pandas.concat) 的内存效率如此之低?

我尝试将大约30GB的数据(在大约900个数据帧的列表中)连接在一起。我正在使用的机器是一个功能适中的LinuxBox,内存约为256GB。但是,当我尝试连接我的文件时,我很快就用完了可用的内存。我已经尝试了各种解决方法来解决这个问题(用for循环等小批量连接),但我仍然无法将它们连接起来。两个问题浮现在脑海:有没有其他人处理过这个问题并找到了有效的解决方法?我不能使用直接追加,因为我需要pd.concat()中的join='outer'参数的“列合并”(因为缺少更好的词)功能>.为什么Pandas连接(我知道它只是调用numpy.concatenate)对内存的使用效率如此低?我还应

python - 如何在 Pandas 中设置第一列和第一行作为索引?

当我读取CSV文件时,我可以说pd.read_csv('my.csv',index_col=3)并将第三列设置为索引。如果我在内存中有pandas数据框,我该怎么做?我怎么能说将第一行也用作索引?第一列和第一行是字符串,矩阵的其余部分是整数。 最佳答案 不管有多少行,你都可以试试这个df=pd.read_csv('data.csv',index_col=0) 关于python-如何在Pandas中设置第一列和第一行作为索引?,我们在StackOverflow上找到一个类似的问题:

python - 如何在 Pandas 中设置第一列和第一行作为索引?

当我读取CSV文件时,我可以说pd.read_csv('my.csv',index_col=3)并将第三列设置为索引。如果我在内存中有pandas数据框,我该怎么做?我怎么能说将第一行也用作索引?第一列和第一行是字符串,矩阵的其余部分是整数。 最佳答案 不管有多少行,你都可以试试这个df=pd.read_csv('data.csv',index_col=0) 关于python-如何在Pandas中设置第一列和第一行作为索引?,我们在StackOverflow上找到一个类似的问题:

python - 构建 3D Pandas DataFrame

我在Pandas中构建3DDataFrame时遇到困难。我想要这样的东西ABCstartendstartendstartend...72042529010111212133456749454512其中A、B等是顶级描述符,start和end是子描述符。后面的数字是成对的,A、B等的对数不同。观察A有四个这样的对,B只有1个,C有3个。我不确定如何继续构建此DataFrame。修改this示例没有给我设计的输出:importnumpyasnpimportpandasaspdA=np.array(['one','one','two','two','three','three'])B=np.

python - 构建 3D Pandas DataFrame

我在Pandas中构建3DDataFrame时遇到困难。我想要这样的东西ABCstartendstartendstartend...72042529010111212133456749454512其中A、B等是顶级描述符,start和end是子描述符。后面的数字是成对的,A、B等的对数不同。观察A有四个这样的对,B只有1个,C有3个。我不确定如何继续构建此DataFrame。修改this示例没有给我设计的输出:importnumpyasnpimportpandasaspdA=np.array(['one','one','two','two','three','three'])B=np.

python - pandas.concat 中的列顺序

我这样做:data1=pd.DataFrame({'b':[1,1,1],'a':[2,2,2]})data2=pd.DataFrame({'b':[1,1,1],'a':[2,2,2]})frames=[data1,data2]data=pd.concat(frames)dataab021121221021121221数据列的顺序是字母顺序。为什么会这样?以及如何保持原来的顺序? 最佳答案 您正在从字典中创建DataFrame。字典是无序的,这意味着键没有特定的顺序。所以d1={'key_a':'val_a','key_b':'v

python - pandas.concat 中的列顺序

我这样做:data1=pd.DataFrame({'b':[1,1,1],'a':[2,2,2]})data2=pd.DataFrame({'b':[1,1,1],'a':[2,2,2]})frames=[data1,data2]data=pd.concat(frames)dataab021121221021121221数据列的顺序是字母顺序。为什么会这样?以及如何保持原来的顺序? 最佳答案 您正在从字典中创建DataFrame。字典是无序的,这意味着键没有特定的顺序。所以d1={'key_a':'val_a','key_b':'v

python - 使用 Pandas 创建带 Series 的 DataFrame,导致内存错误

我正在使用Pandas库进行遥感时间序列分析。最终我想通过使用block大小将我的DataFrame保存到csv,但我遇到了一个小问题。我的代码生成了6个NumPy数组,我将它们转换为Pandas系列。这些系列中的每一个都包含很多项目>>>prcpSeries.shape(12626172,)我想将系列添加到PandasDataFrame(df)中,以便将它们逐block保存到csv文件中。d={'prcp':pd.Series(prcpSeries),'tmax':pd.Series(tmaxSeries),'tmin':pd.Series(tminSeries),'ndvi':pd