通常,人们会在打印输出(数据帧)时询问堆栈溢出问题。如果有一种方法可以将数据帧数据快速加载到pandas.dataframe
对象中,那么这是很方便的。
从数据帧字符串(可能格式正确,也可能格式不正确)加载数据帧的最有建议的方法是什么?
如果要将以下字符串作为数据帧加载,您会怎么做?
# Dummy Data
s1 = """
Client NumberOfProducts ID
A 1 2
A 5 1
B 1 2
B 6 1
C 9 1
"""
此类型与您在csv
文件中找到的更相似。
# Dummy Data
s2 = """
Client, NumberOfProducts, ID
A, 1, 2
A, 5, 1
B, 1, 2
B, 6, 1
C, 9, 1
"""
注意:以下两个链接不涉及示例-1中提出的具体情况。我认为我的问题不是重复的原因是,我认为不能使用已经发布在这些链接上的任何解决方案加载示例1中的字符串(在撰写本文时)。
此问题被标记为两个堆栈溢出链接的副本。其中之一就是上面的一个,它无法解决示例1中所示的情况。第二个是。在这里给出的所有答案中,只有一个看起来可能有效,例如-1,但它不起作用。
# could not read the clipboard and threw error
pd.read_clipboard(sep='\s\s+')
抛出错误:
PyperclipException:
Pyperclip could not find a copy/paste mechanism for your system.
For more information, please visit https://pyperclip.readthedocs.org
我可以提出两种方法来解决这个问题。
使用regex
和numpy
处理字符串以生成数据帧。我所看到的是,这在大多数情况下都有效。这将适用于“示例1”中介绍的情况。
# Make Dataframe
import pandas as pd
import numpy as np
import re
# Make Dataframe
# s = s1
ncols = 3 # number_of_columns
ss = re.sub('\s+',',',s.strip())
sa = np.array(ss.split(',')).reshape(-1,ncols)
df = pd.DataFrame(dict((k,v) for k,v in zip(sa[0,:], sa[1:,].T)))
df
使用io.StringIO
馈送到pandas.read\u csv()
。但如果分隔符定义得很好,这将起作用。例如,如果您的数据看起来类似于“示例2”。来源信贷
import pandas as pd
from io import StringIO
# Make Dataframe
# s = s2
df = pd.read_csv(StringIO(s), sep=',')
问题内容: 我对熊猫和matplotlib还不熟悉。无法获取对 绘制模式如下的“DataFrame” 喜欢画三维图形w.r.t.x,y和z 这是我使用的示例代码 I am getting a empty graph plot. definitely missing something. Any pointers? -Thx Request-1: Print df Result of top 10
我有一个pandas数据帧,如下所示: 我希望将第0行添加到数据帧的末尾,并获得如下所示的新数据帧: 我在熊猫身上能做什么来做到这一点?
我想转换一个组织。阿帕奇。火花sql。数据框到组织。阿帕奇。火花rdd。RDD[(字符串,字符串)]在数据块中。有人能帮忙吗? 背景(也欢迎使用更好的解决方案):我有一个Kafka流,它(经过一些步骤)变成了2列数据帧。我想将其放入Redis缓存,第一列作为键,第二列作为值。 更具体地说,输入的类型是:。我尝试将以下内容放入Redis: 错误消息如下所示: 我已经尝试过一些想法(比如函数、rdd)
字典的键是日期,值是一个长度不同的列表 例如,字典是 我想要的是像这样的数据帧
如何使用Spark-Scala连接日期和时间列(两个字符串)
我有一个如下所示的数据帧: 我需要提取lat=30.75和lon 76.25的行,对于我使用的行: 但这表明了这个错误: