python - 如何将数据分离到 pandas 中的不同变量中

标签 python pandas

嘿伙计们,我有一个看起来像这样的数据 train.dat 。我正在尝试创建一个变量,该变量将包含包含(-1或1)的列的第[ith]值,以及另一个变量来保存具有字符串的列的值。

到目前为止我已经尝试过了,

  df=pd.read_csv("train.dat",delimiter="\t", sep=',')
# print(df.head())


# separate names from classes
vals = df.ix[:,:].values
names = [n[0][3:] for n in vals]
cls = [n[0][0:] for n in vals]
print(cls)

但是输出看起来很困惑,任何帮助将不胜感激。我是Python初学者

最佳答案

如果数值后面的字符是制表符,那就没问题,您所需要的只是

import io # using io.StringIO for demonstration
import pandas as pd

ratings = "-1\tThis movie really sucks.\n-1\tRun colored water through 
a reflux condenser and call it a science movie?\n+1\tJust another zombie flick? You'll be surprised!"

df = pd.read_csv(io.StringIO(ratings), sep='\t', 
                 header=None, names=['change', 'rating'])
  • 传递 header=None 可确保第一行被解释为数据。
  • 传递names=['change', ' rating']提供了一些(合理的)列标题。

当然,这个字符不是制表符:D。

import io # using io.string
import pandas as pd

ratings = "-1 This movie really sucks.\n-1 Run colored water through a 
reflux condenser and call it a science movie?\n+1 Just another zombie 
flick? You'll be surprised!"

df = pd.read_csv(io.StringIO(ratings), sep='\t', 
                 header=None, names=['stuff'])

df['change'], df['rating'] = df.stuff.str[:3], df.stuff.str[3:] 
df.drop('stuff', axis=1)

一个可行的选择是将整个评级作为一个临时列读取,拆分字符串,将其分配到两列,最后删除临时列。

关于python - 如何将数据分离到 pandas 中的不同变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46656594/

相关文章:

python - 同时从多个列表中删除元素

python - Pandas 系列位到十进制整数

python - 读取 .csv 文件时在 Python 中解析日期的最快方法?

python - 设置基于值计数和分组依据的数据框列值

python - 是否可以从函数返回字典或系列以及数据帧?

python-3.x - 如何将列名添加到 Pandas 数据框中的单元格?

python - 基于groupby的绘图

python - 有没有办法让 python 脚本知道它是什么类型的文件?

python - 使用 Lambda 和条件连接

python - ImportError : No module named absl.测试