我有一个pandas.DataFrame
我希望导出到CSV文件的文件。但是,pandas似乎将某些值float
而不是int
类型写为。我找不到如何更改此行为。
建立数据框:
df = pandas.DataFrame(columns=['a','b','c','d'], index=['x','y','z'], dtype=int)
x = pandas.Series([10,10,10], index=['a','b','d'], dtype=int)
y = pandas.Series([1,5,2,3], index=['a','b','c','d'], dtype=int)
z = pandas.Series([1,2,3,4], index=['a','b','c','d'], dtype=int)
df.loc['x']=x; df.loc['y']=y; df.loc['z']=z
查看:
>>> df
a b c d
x 10 10 NaN 10
y 1 5 2 3
z 1 2 3 4
导出它:
>>> df.to_csv('test.csv', sep='\t', na_rep='0', dtype=int)
>>> for l in open('test.csv'): print l.strip('\n')
a b c d
x 10.0 10.0 0 10.0
y 1 5 2 3
z 1 2 3 4
为什么十位数有一个零点?
当然,我可以将此函数粘贴到管道中以重新转换整个CSV文件,但似乎没有必要:
def lines_as_integer(path):
handle = open(path)
yield handle.next()
for line in handle:
line = line.split()
label = line[0]
values = map(float, line[1:])
values = map(int, values)
yield label + '\t' + '\t'.join(map(str,values)) + '\n'
handle = open(path_table_int, 'w')
handle.writelines(lines_as_integer(path_table_float))
handle.close()
我正在寻找的答案与@Jeff在答案中提出的内容略有不同。功劳归于他。最终解决了我的问题,以供参考:
import pandas
df = pandas.DataFrame(data, columns=['a','b','c','d'], index=['x','y','z'])
df = df.fillna(0)
df = df.astype(int)
df.to_csv('test.csv', sep='\t')
我有一个脚本可以将一整串CSV输出到文件夹C:\scripts\csv。这个特定的脚本循环了所有的数据流,并计算了数据集中前100个单词的使用情况。前100个单词及其计数被添加到一个列表中,数据流被串联,然后csv应该导出。打印包含正确的信息,但脚本不输出任何文件。
我有一个数据框: 我使用函数来获取包含最大值的列。 如何使用和一起创建一个时间序列值,对应于每行中的最大值?这是我想要的输出: 我知道我可以通过,但我想知道如何通过使用获得相同的输出,因为我想能够将应用于其他矩阵(不是),它们与共享相同的列和索引(但不是相同的值)。
我需要在我的中聚合一个数组。 数据帧是这样创建的 值是一个数组 我想这样想 但我有以下错误 分析异常:由于数据类型不匹配,u“无法解析‘sum(values)’:函数sum需要数字类型,而不是ArrayType(StringType,true);第0行位置0” 数组的维数始终相同。但每次运行的尺寸可能会变化,接近100的长度。 如何在不进行RDD的情况下进行聚合?
这是我的密码: 我想知道如何将df3绑定到单个数据帧中作为"NA"s? 我在r_blogger上找到了一篇关于将向量或长度不等的数据帧组合成一个数据帧的文章。http://www.r-bloggers.com/r-combining-vectors-or-data-frames-of-unequal-length-into-one-data-frame/ 但是我从数据中得到的数据框,其中一些是空的
我有一个名为df的数据库数据帧。我想将它作为csv文件写入S3存储桶。我有S3存储桶名称和其他凭据。我检查了这里给出的在线留档https://docs.databricks.com/spark/latest/data-sources/aws/amazon-s3.html#mount-aws-s3它说使用以下命令 但我有的是数据帧,而不是文件。怎么才能实现?
我在Ubuntu 14.04上使用Hadoop-1.2.1 我正在尝试使用Flume-1.6.0将数据从twitter流式传输到HDFS。我已经下载了Flume-sources-1.0-SNAPSHOT。jar并将其包含在flume/lib文件夹中。我已经设置了flume-sources-1.0-SNAPSHOT的路径。jar在conf/FLUME环境中显示为FLUME_CLASSPATH。这是我