为了简单起见,请说我有以下内容:
value1
如何使用pandas将value2
和value1 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文件输入的示例。 任何想法我怎么能这样做!
答案 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
。
编辑:上面的答案假设为value1
而value2
对您没有任何用处,因此可以使用列表理解创建。如果您实际上使用这些值进行其他一些计算,它可能会帮助您在使用时使用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