小编Hav*_*Shi的帖子

如何使用熊猫将新的数据帧行附加到 csv?

我有一个新的数据框,如何将它附加到现有的 csv?

我尝试了以下代码:

f = open('test.csv', 'w')
df.to_csv(f, sep='\t')
f.close()
Run Code Online (Sandbox Code Playgroud)

但它不会向 test.csv 附加任何内容。csv 很大,我只想使用附加,而不是将整个 csv 读取为数据帧并将其连接到新的 csv 中。有什么好的方法可以解决问题吗?谢谢。

csv append dataframe pandas

5
推荐指数
1
解决办法
1万
查看次数

如何使用to_sql将pandas数据框写入oracle数据库?

我是一名新的oracle学习者。我正在尝试将pandas数据框写入到oracle表中。在网上进行研究之后,我发现代码本身非常简单,但是我不知道为什么我的代码不起作用。

我已经从本地文件中读取了熊猫数据框:

import cx_Oracle
import pandas as pd
import os

dir_path = os.path.dirname(os.path.realpath("__file__"))
df = pd.read_csv(dir_path+"/sample.csv")
Run Code Online (Sandbox Code Playgroud)

现在打印df,数据框df的数据如下:

   DATE            YEAR     MONTH      SOURCE      DESTINATION
0  11/1/2017 1:00  2017     1          AL          CO  
1  11/2/2017 1:00  2017     5          GA          ID  
2  11/3/2017 1:00  2017     12         GA          MO    
Run Code Online (Sandbox Code Playgroud)

然后,我使用cx_Oracle创建与数据库的连接,它可以工作。接下来,我尝试将数据帧df写入表TEST中。该表TEST是一个空表,已经在oracle数据库中存在,它在oracle中具有DATE,YEAR,MONTH,SOURCE,DESTINATION列。所有数据类型都与df样本数据匹配。我的代码如下:

conn_str = u'account/password@host:1521/server'
conn = cx_Oracle.connect(conn_str)

# Write records stored in a DataFrame to a oracle database
df.to_sql('TEST', conn, if_exists='replace') # the error shows here

conn.close()
Run Code Online (Sandbox Code Playgroud)

它显示错误:

DatabaseError:在sql'SELECT name from sqlite_master WHERE type ='table'AND name = …

oracle cx-oracle dataframe pandas pandas-to-sql

5
推荐指数
1
解决办法
1万
查看次数

如何按列值的计数进行分组并对其进行排序?

如何按列值的计数进行分组并对其进行排序?

我是熊猫学习者。

我有名为 data.log 的原始数据框。现在我想计算按“c-ip-1”分组的数字,并对结果进行排序。

原始数据.log:

   sc-status  sc-substatus  sc-win32-status  time-taken       c-ip-1
0        200             0                0         986  31.7.188.55
1        200             0                0        2539  31.7.188.55
2        200             0                0        1172  31.7.188.56
3        200             0                0        3152  31.7.188.80
4        200             0                0        1091  31.7.188.80
...
99       200             0                0        1115  31.9.200.60
100      200             0                0        2000  31.9.200.61
Run Code Online (Sandbox Code Playgroud)

预期结果如下:

         c-ip-1                 count
0        31.7.188.56            1     
1        31.9.200.61            1  
2        31.7.188.55            2  
...
34       31.9.200.60            5
Run Code Online (Sandbox Code Playgroud)

我尝试编写Python代码并运行它,但失败了:

import pandas as pd

df = pd.read_table('data.log', sep=" ") …
Run Code Online (Sandbox Code Playgroud)

python sorting group-by count pandas

2
推荐指数
1
解决办法
4430
查看次数