循环值直接到csv

时间:2017-05-31 09:55:41

标签: python csv pandas

为了简单起见,请说我有以下内容:

value1

如何使用pandas将value2value1 value2 0 0 0.01 2.75 0.02 5.25 ..... ... 写入csv文件,以便结果如下:

   <tr>
   <td id = "texas"><a href="">
   A = <p id = "value1">10.87</p>
   <br>
   B = <p id = "value2">-50.9</p>
   </a>
   </td>

我一直在搜索,但可以找到任何使用简单值作为csv文件输入的示例。 任何想法我怎么能这样做!

5 个答案:

答案 0 :(得分:3)

如果您致力于使用pandas,则可以使用字典以及DataFrame的.from_dict()to_csv()方法:

import pandas as pd

data = {'value1': [i*0.01 for i in range(100)],
        'value2': [i*2.75 for i in range(100)]}

pd.DataFrame.from_dict(data).to_csv('output.csv', index=False)

这会将两列保存为所需格式的output.csv

编辑:上面的答案假设为value1value2对您没有任何用处,因此可以使用列表理解创建。如果您实际上使用这些值进行其他一些计算,它可能会帮助您在使用时使用defaultdict更新值字典,然后在最后输出,如下所示:

import pandas as pd
from collections import defaultdict

output_values = defaultdict(list)

for i in range(0, 100):
    value1 = i * 0.01
    value2 = i * 2.75

    output_values['value1'].append(value1)
    output_values['value2'].append(value2)

    # Do other things with these values....

pd.DataFrame.from_dict(output_values).to_csv('output.csv', index=False)

答案 1 :(得分:2)

如果您不需要使用pandas,可以使用csv模块:

import csv
with open('file.csv', 'wb') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['value1', 'value2'])
    for i in range(0 ,100):
        value1 = i*0.01  
        value2 = i*2.75 
        writer.writerow([value1, value2])

如果 使用pandas,那么通常有一种更自然的pandas-y方式来构建数据帧,而不是一次一个值。在这种情况下,例如:

import pandas as pd
s = pd.Series(range(100))
df = pd.DataFrame({'value1': s * .01, 'value2': s * 2.75})
df.to_csv('output.csv', index=False)

答案 2 :(得分:2)

另一种方法,使用generator

import pandas as pd

def get_val(limit=100):
    for k in range(limit):
        yield k * 0.01, k * 2.75

pd.DataFrame(get_val(), columns=["value1", "value2"]).to_csv("output.csv", index=False)

答案 3 :(得分:0)

您可以使用以下命令将pandas df保存到csv:

df.to_csv(file_name)

答案 4 :(得分:0)

这是一只非熊猫的解决方案:

>>> import pyexcel as p
>>> def data_gen(length):
...     yield ['value1', 'value2']
...     for i in range(0, length):
...         value1 = i*0.01  
...         value2 = i*2.75
...     yield [value1, value2]
>>> p.save_as(array=data_gen(100), dest_file_name='test.csv')

依赖关系为pyexcel