相关疑难解决方法(0)

根据列名重新排序pandas数据帧中的列

我有一个dataframe超过200列.问题在于订单生成了

['Q1.3','Q6.1','Q1.2','Q1.1',......]
Run Code Online (Sandbox Code Playgroud)

我需要按如下方式重新排序列:

['Q1.1','Q1.2','Q1.3',.....'Q6.1',......]
Run Code Online (Sandbox Code Playgroud)

我有办法在Python中做到这一点吗?

python dataframe pandas

257
推荐指数
7
解决办法
21万
查看次数

pandas DataFrame输出csv的结尾

我想知道如何将新的DataFrame数据添加到现有csv文件的末尾?to_csv没有提到这样的功能.先感谢您.

python csv dataframe pandas

34
推荐指数
2
解决办法
4万
查看次数

Pandas将数据帧列写入csv

我正在编写一个脚本来将带有标头的大型.xlsx文件缩减为csv,然后编写一个新的csv文件,其中只包含基于标题名称的必需列.

import pandas
import csv

df = pandas.read_csv('C:\\Python27\\Work\\spoofing.csv')

time = df["InviteTime (Oracle)"]
orignum = df["Orig Number"]
origip = df["Orig IP Address"]
destnum = df["Dest Number"]

df.to_csv('output.csv', header=[time,orignum,origip,destnum])
Run Code Online (Sandbox Code Playgroud)

我得到的错误是最后一段代码,它说

ValueError: Writing 102 cols but got 4 aliases
Run Code Online (Sandbox Code Playgroud)

我确定我忽略了一些愚蠢的东西,但我已经阅读了熊猫网站上的to_csv文档,我仍然不知所措.我知道我正在使用to_csv参数不正确,但我似乎无法理解我的文档.

任何帮助表示赞赏,谢谢!

python csv pandas

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

我可以使用pandas附加到压缩流吗?

我知道通过将compression='gzip'参数传递给pd.read_csv()我可以将DataFrame保存到压缩的CSV文件中.

my_df.to_csv('my_file_name.csv', compression='gzip')
Run Code Online (Sandbox Code Playgroud)

我也知道,如果我想 DataFrame 附加到我可以使用的现有CSV文件的末尾mode='a',就像这样

my_df.to_csv('my_file_name.csv', mode='a', index=False)
Run Code Online (Sandbox Code Playgroud)

但是,如果我想将DataFrame附加到压缩CSV文件的末尾怎么办?这甚至可能吗?我试着这样做

my_df.to_csv('my_file_name.csv', mode='a', index=False, compression='gzip')
Run Code Online (Sandbox Code Playgroud)

但是生成的CSV没有被压缩,尽管条件很好.


这个问题是由我处理带有Pandas的大型CSV文件引起的.我需要生成压缩的CSV输出,并将块文件中的CSV文件处理成DataFrame,这样我就不会遇到MemoryError.因此,对我来说,最看似合乎逻辑的事情是将每个输出DataFrame块一起附加到一个压缩的zip文件中.

我使用的是Python 3.4和Pandas 0.16.1.

python csv gzip pandas

7
推荐指数
1
解决办法
938
查看次数

大熊猫使用附加将数据帧写入镶木地板格式

我试图写一个pandas dataframeparquet文件格式(在最近的大熊猫版本0.21.0介绍)append模式。但是,该文件不是附加到现有文件,而是被新数据覆盖。我错过了什么?

写语法是

df.to_parquet(path, mode='append')
Run Code Online (Sandbox Code Playgroud)

读取语法是

pd.read_parquet(path)
Run Code Online (Sandbox Code Playgroud)

python apache pandas parquet

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

将pandas DataFrame列附加到CSV

我正在尝试将pandas DataFrame(单列)附加到现有的CSV,就像这篇文章一样,但它不起作用!相反,我的列被添加到csv的底部,并反复重复(csv >>行的大小为列).这是我的代码:

with open(outputPath, "a") as resultsFile:
    print len(scores)
    scores.to_csv(resultsFile, header=False)
    print resultsFile
Run Code Online (Sandbox Code Playgroud)

终端输出:4032 <open file '/Users/alavin/nta/NAB/results/numenta/artificialWithAnomaly/numenta_art_load_balancer_spikes.csv', mode 'a' at 0x1088686f0>

先感谢您!

python csv pandas

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

如何在使用 python pandas .to_csv 附加到 csv 时强制换行

附加到 csv 时,我的第一行从现有的最后一行而不是新行开始。

我一直在搜索 SO,但我只是找到了在追加模式下打开 csv 或在写入 csv 时使用追加模式的基本用法。我无法理解这里接受的答案(to_csv 追加模式不追加到下一个新行),因为它似乎要求在用f.write("/n"). 这个答案(How to add pandas data to an existing csv file?)是最相关的,但我希望在一个函数中写入多个数据框,所以我不想继续打开它们。我的计划是使用如下函数:

import os
def mysave(df,dfpath):
    # if file does not exist write header 
    if not os.path.isfile(dfpath):
        df.to_csv(dfpath, index = False)
    else: # else it exists so append without writing the header
        df.to_csv(dfpath, mode = 'a', index = False, header = False)

mysave(mydf, 'foo.csv')
Run Code Online (Sandbox Code Playgroud)

我创建了一个非常简单的示例,其中 foo.csv 的结构如下:

a   b   c   d           
5   1   ah  doo         
6 …
Run Code Online (Sandbox Code Playgroud)

python csv pandas

6
推荐指数
1
解决办法
6372
查看次数

如何使用自定义标头将 pandas.DataFrame 写入 csv 文件?

我有一个数据框

import pandas as pd
df = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b'])
Run Code Online (Sandbox Code Playgroud)

我想写入dfcsv 文件但不使用列['a', 'b']。第一行是我的自定义字符串,其余的是df.values. 例如:

numrows numcols note
1 2
3 4
Run Code Online (Sandbox Code Playgroud)

我可以用熊猫来做到这一点,还是我必须手动遍历内容并写入文件?

python csv dataframe pandas

6
推荐指数
2
解决办法
8143
查看次数

打印熊猫数据框时禁止描述性输出

说我有数据框,c

a=np.random.random((6,2))
c=pd.DataFrame(a)
c.columns=['A','B']
Run Code Online (Sandbox Code Playgroud)

打印第0行的值:

print c.loc[(0),:]
Run Code Online (Sandbox Code Playgroud)

结果是:

A    0.220170
B    0.261467
Name: 0, dtype: float64
Run Code Online (Sandbox Code Playgroud)

我想取消显示该Name: 0, dtype: float64行,以便得到:

A    0.220170
B    0.261467
Run Code Online (Sandbox Code Playgroud)

有人知道吗?

(nb我将此附加到文本文件中)

python numpy output-formatting pandas

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

使用Python或R将非常大的sql文件导出到csv中

我有一个大型的sql文件(20 GB),我想将其转换为csv.我计划将文件加载到Stata进行分析.我有足够的内存来加载整个文件(我的电脑在RAM中有32GB)

问题是:到目前为止我在网上找到的解决方案(sqlite3)似乎需要比我当前系统更多的RAM:

  • 阅读SQL
  • 写csv

这是代码

import sqlite3
import pandas as pd

con=sqlite3.connect('mydata.sql')
query='select * from mydata'
data=pd.read_sql(query,con)
data.to_csv('export.csv')
con.close()
Run Code Online (Sandbox Code Playgroud)

sql文件包含大约15个变量,可以是时间戳,字符串或数值.没什么好看的.

我认为一种可能的解决方案是读取sql并一次写一行csv文件.但是,我不知道如何做到这一点(在R或Python中)

任何帮助真的很感激!

python sql csv export r

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

Python:在csv中导出矩阵

我有一个2D矩阵,包含13行和13列(除了第一列以外的标题)correl,用Python 命名.这个correl矩阵是从a生成的DataFrame,我希望correlation用多个矩阵填充矩阵correl.例如:

correlation=[]
correl=df.corr()
correlation=correlation.append(correl) #correlation is not a DataFrame
Run Code Online (Sandbox Code Playgroud)

我使用correlation=[]它的原因是因为我希望填充correlation多个相关表.这就是我使用的原因,append因为这是一个循环.

现在我想在csv文件中导出这个相关矩阵.我做:

with open("C:\destinationfolder\file.csv", "wb") as f:
    writer = csv.writer(f)
    writer.writerows(correlation)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

raise KeyError('no item named %s' % com.pprint_thing(item)) KeyError: u'no item named 0'

为什么?我的猜测是我没有第一列的标题...是否有更简单的方法将我的相关表导出到csv?

python pandas

3
推荐指数
1
解决办法
6095
查看次数

pandas 数据框 to_csv 在每行后写入空行

当我将数据框写入 csv 时,如果我使用“with open”,我会在 csv 文件中的每一行之后得到一个空行:

df = pd.DataFrame(data=np.random.randint(0, 100, (4, 5)), columns=list('ABCDE'))
with open('test.csv', 'a') as f:
    df.to_csv(f, header=False)
Run Code Online (Sandbox Code Playgroud)

如果我只是这样做:

df.to_csv('test.csv', header=False)
Run Code Online (Sandbox Code Playgroud)

没有空行!我究竟做错了什么?

python pandas

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

标签 统计

python ×12

pandas ×11

csv ×7

dataframe ×3

apache ×1

export ×1

gzip ×1

numpy ×1

output-formatting ×1

parquet ×1

r ×1

sql ×1