相关疑难解决方法(0)

如何在Python中创建tmp文件?

我有这个函数引用文件的路径:

some_obj.file_name(FILE_PATH)
Run Code Online (Sandbox Code Playgroud)

其中FILE_PATH是文件路径的字符串,即 H:/path/FILE_NAME.ext

我想在我的python脚本中创建一个文件FILE_NAME.ext,其中包含字符串的内容:

some_string = 'this is some content'
Run Code Online (Sandbox Code Playgroud)

怎么去这个?Python脚本将放在Linux框中.

python

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

在不创建外部文本文件的情况下将终端输出捕获到 Pandas 数据帧中

我正在使用 ffmpeg 的 extract_mvs 文件来生成一些文本信息。我会在终端中使用这样的命令:

/extract_mvs input.mp4 > output.txt
Run Code Online (Sandbox Code Playgroud)

我想将此命令与Popenpython 中的或其他子进程一起使用,以便将数据直接传递到 Pandas 数据帧而不是实际生成文本文件,而不是 output.txt。

这个想法是多次自动化,所以,我试图避免生成许多 .txt 文件,从而避免open()一个一个地生成它们。

我想到了这样的事情:

import subprocess
cmd = ['./extract_mvs', 'input.mp4']
a = subprocess.Popen(cmd, stdout=subprocess.PIPE)
df = pd.read_csv(a.communicate()[0], sep=',')
Run Code Online (Sandbox Code Playgroud)

但后来我收到一个错误: OSError: Expected file path name or file-like object, got <class 'bytes'> type

它可以固定和扩展以便直接从子进程读取到熊猫吗?

python terminal ffmpeg popen pandas

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

R是Python中的read.table等价物

我正在尝试将我的一些处理工作从R转移到Python.在R中,我使用read.table()来读取非常混乱的CSV文件,它会以正确的格式自动拆分记录.例如

391788,"HP Deskjet 3050 scanner always seems to break","<p>I'm running a Windows 7 64 blah blah blah........ake this work permanently?</p>

<p>Update: It might have something to do with my computer. It seems to work much better on another computer, windows 7 laptop. Not sure exactly what the deal is, but I'm still looking into it...</p>
","windows-7 printer hp"
Run Code Online (Sandbox Code Playgroud)

正确分为4列.1条记录可以分成很多行,并且到处都有逗号.在RI只做:

read.table(infile, header = FALSE, nrows=chunksize, sep=",", stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

Python中有什么能够同样做到这一点吗?

谢谢!

python r read.table

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

将 pandas GroupBy 中的列值聚合为字典

这是我之前面试的时候也问过的问题。

我们的输入数据具有以下列:

语言、产品 ID、货架 ID、排名

例如,输入将具有以下格式

English, 742005, 4560, 10.2 
English, 6000075389352, 4560, 49
French, 899883993, 4560, 32
French, 731317391, 7868, 81
Run Code Online (Sandbox Code Playgroud)

我们希望对语言、货架 ID 列进行“分组”操作,并根据“排名”属性上的 sort desc 对产品列表进行排序,这将导致输出具有以下格式:

语言、shelf_id、{product_id:rank1、product_id:rank2 ....}

对于每条记录。

对于给定的输入,输出如下:

English, 4560, {6000075389352:49, 742005:10.2}
French, 4560, 899883993:32
French, 7868, 731317391:81
Run Code Online (Sandbox Code Playgroud)

我通过使用键(通过组合语言和货架 id 创建)创建一个字典并插入每个键的产品 id 和排名来解决这个问题。

我的方法有效,但看起来有一种更简单的方法可以使用 python pandas 库来实现。我读过一些参考资料,但我仍然不确定是否有比我所做的更好的方法(通过使用语言、书架 ID 和具有该密钥的字典创建密钥来解决问题)

任何帮助将不胜感激。

python dictionary dataframe pandas pandas-groupby

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

我们应该使用 pandas.compat.StringIO 还是 Python 2/3 StringIO?

StringIO 是我们在从文本中读取Pandas数据帧时使用的类似文件的字符串缓冲区对象,例如“如何从字符串创建 Pandas数据帧?”

我们应该将这两个导入中的哪一个用于 StringIO(在熊猫中)?这是一个长期存在的问题,四年来从未得到解决。

  1. StringIO.StringIO(Python 2)/ io.StringIO(Python 3)
    • 优点:对于面向未来的代码更稳定,但迫使我们进行版本分叉,例如参见 EmilH 底部的代码。
  2. pandas.compat.StringIO

用于从标准(来自 EmilH)导入的版本 2/3 分叉代码:

import sys
if sys.version_info[0] < 3: 
    from StringIO import StringIO
else:
    from io import StringIO …
Run Code Online (Sandbox Code Playgroud)

import backwards-compatibility stringio python-2to3 pandas

5
推荐指数
2
解决办法
2222
查看次数

如何将字节数据转换为python pandas数据框?

我想将“字节”数据转换为Pandas数据框。

数据如下所示(前几行):

    (b'#Settlement Date,Settlement Period,CCGT,OIL,COAL,NUCLEAR,WIND,PS,NPSHYD,OCGT'
 b',OTHER,INTFR,INTIRL,INTNED,INTEW,BIOMASS\n2017-01-01,1,7727,0,3815,7404,3'
 b'923,0,944,0,2123,948,296,856,238,\n2017-01-01,2,8338,0,3815,7403,3658,16,'
 b'909,0,2124,998,298,874,288,\n2017-01-01,3,7927,0,3801,7408,3925,0,864,0,2'
 b'122,998,298,816,286,\n2017-01-01,4,6996,0,3803,7407,4393,0,863,0,2122,998'
Run Code Online (Sandbox Code Playgroud)

列标题显示在顶部。接下来的每一行都是一个时间戳和数字。

有没有简单的方法可以做到这一点?

非常感谢你

@Paula Livingstone:

这似乎可行:

s=str(bytes_data,'utf-8')

file = open("data.txt","w") 

file.write(s)
df=pd.read_csv('data.txt')
Run Code Online (Sandbox Code Playgroud)

也许可以在不使用文件的情况下完成此操作。

python-3.x pandas

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

如何将字符串从 df.to_string() 转换回 DataFrame

我知道可以使用 to_string 函数将 DataFrame 转换为字符串:

import pandas as pd
df = pd.DataFrame({'A' : ['one', 'one', 'two', 'three'] * 3,
                   'B' : ['Aa', 'Bb', 'Cc'] * 4})
dfstr = df.to_string()
print(dfstr)
Run Code Online (Sandbox Code Playgroud)

输出:

        A   B
0     one  Aa
1     one  Bb
2     two  Cc
3   three  Aa
4     one  Bb
5     one  Cc
6     two  Aa
7   three  Bb
8     one  Cc
9     one  Aa
10    two  Bb
11  three  Cc
Run Code Online (Sandbox Code Playgroud)

如何将其转换dfstr回 DataFrame 对象?


编辑:

我特别询问如何将df.to_string()函数创建的字符串转换回数据帧对象,而不是关于如何将文本数据(字符串)转换为数据帧的一般方法,如如何从字符串创建 Pandas …

python string dataframe python-3.x pandas

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

如何在Python中将字符串转换为数据帧

我使用urlopen获取如下数据字符串.我想将字符串转换为数据帧并保留几个列,如state,AQI等.我不知道该怎么做,想向你寻求建议.谢谢!

  response=urlopen(URL).read().decode('utf-8')
  print(response) 
"DateIssue","DateForecast","ReportingArea","StateCode","Latitude","Longitude","ParameterName","AQI","CategoryNumber","CategoryName","ActionDay","Discussion"
"2017-05-01 ","2017-05-01 ","Metropolitan Washington","DC","38.919","-77.013","O3","42","1","Good","false",""
"2017-05-01 ","2017-05-01 ","Metropolitan Washington","DC","38.919","-77.013","PM2.5","46","1","Good","false",""
"2017-05-01 ","2017-05-02 ","Metropolitan Washington","DC","38.919","-77.013","O3","44","1","Good","false",""
"2017-05-01 ","2017-05-02 ","Metropolitan Washington","DC","38.919","-77.013","PM2.5","25","1","Good","false",""
"2017-05-01 ","2017-05-03 ","Metropolitan Washington","DC","38.919","-77.013","O3","44","1","Good","false",""
"2017-05-01 ","2017-05-03 ","Metropolitan Washington","DC","38.919","-77.013","PM2.5","25","1","Good","false",""
"2017-05-01 ","2017-05-04 ","Metropolitan Washington","DC","38.919","-77.013","O3","42","1","Good","false",""
"2017-05-01 ","2017-05-04 ","Metropolitan Washington","DC","38.919","-77.013","PM2.5","29","1","Good","false",""
Run Code Online (Sandbox Code Playgroud)

python

3
推荐指数
2
解决办法
6458
查看次数

在python django中解析csv文件

我正在尝试从已上传的csv文件读取数据。首先,我要获取每一行,然后尝试通过用逗号分割每行来读取数据,这对于理想情况是很好的,但是如果包含“,”(如地址字段),它将以错误的格式解析数据。

我想有一个更可靠的解决方案 val = v.split(',')

我的代码是

 upload_file = request.FILES['upload_file']
    data = [row for row in csv.reader(upload_file.read().splitlines())]

    for v in data:
       # v is every row
       val = v.split(',') #spliting value of every row to get each record of every row 
Run Code Online (Sandbox Code Playgroud)

python csv django

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

想要将 Salesforce 报表内容导入、提取到 Pandas 中然后保存

嗨,我使用 simple_salesforce 模块连接到 salesforce 并将其定位到我想要提取的报告。此时,我拥有 csv 逗号分隔格式的所需数据,当我编写d.content它时, 它以逗号分隔显示数据,但我想在 Pandas 数据框中拥有相同的数据。

d = session.get("https://nax.salesforce.com/xxxxxxxxxx?export=1&enc=UTF-8&xf=csv".format('xxxxxxxxxx'), headers=sf.headers, cookies={'sid': sf.session_id})
Run Code Online (Sandbox Code Playgroud)

然后

in[22]: d.content

out[22]: "whole comma seperated data"
Run Code Online (Sandbox Code Playgroud)

我希望上述数据在熊猫中或保存在 csv 中

当我写:

pd.DataFrame(d)
Run Code Online (Sandbox Code Playgroud)

它给出了一个错误

PandasError: DataFrame constructor not properly called!
Run Code Online (Sandbox Code Playgroud)

请告诉我如何进一步将以下数据保存在 csv 中或插入到 Pandas 中以进一步保存它。

python csv salesforce pandas

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