求助各位大佬
ta_content = element.find_elements_by_xpath('//*[@id="datalist"]/table/tbody/tr/td')lst1 = []
if not ta_content:
print(None)
else:
for ta in ta_content:
ta = ta.get_attribute("innerText")
print(ta)
tb = .....
tc = ......
td =.....
te =.....
tf = .....
tg = .....
ti_content = element.find_elements_by_xpath('//*[@id="datalist"]/table/tbody/tr/td')
lst9 = []
if not ti_content:
print(None)
else:
for ti in ti_content:
ti = ti.get_attribute("innerText")
print(ti)
write_clo =
df = pd.DataFrame(columns=(write_clo))
df.to_csv('sao.csv', line_terminator="\n", index=False, mode='a', encoding='utf8')
运行后 pycharm下面窗口显示出来的结果是:0.9NoneNoneNone 0.940.950.960.97 0.98
但是保存到 csv 里面却显示不出None ,而是用其他的数据给顶替了,变成了 : 0.90.880.870.87 0.940.950.960.97 0.98
请教各位大佬,
我想要csv里面保存的数据也能显示出None,应该怎么操作?
本帖最后由 Twilight6 于 2020-6-20 16:23 编辑
把None 转为 str 然后写入即可吧
str(None)
>>> 'None'
None# 空
>>> # 所以不会显示东东
Twilight6 发表于 2020-6-20 16:22
把None 转为 str 然后写入即可吧
不是None的问题,假设我把None改为数字0,那么我pycharm下面运行的结果是对的,是可以显示0的,但是存到csv里面就又没有0了。
运行后 pycharm下面窗口显示出来的结果是:0.9000 0.940.950.960.97 0.98
但是保存到 csv 里面却显示不出0,而是用其他的数据给顶替了,变成了 : 0.90.880.870.87 0.940.950.960.97 0.98
所以 问题是我存到csv里面的时候,如果当前数值不存在的话,怎么样能够在csv里面把这个位置给空出来,或者用个数字或者字母(随便什么,比如0)来占这个空位。 lpp25621832 发表于 2020-6-20 16:32
不是None的问题,假设我把None改为数字0,那么我pycharm下面运行的结果是对的,是可以显示0的,但是存到c ...
我觉得是你代码有一小点问题,打印的和写入的不一致吧? 检查检查~ Twilight6 发表于 2020-6-20 17:08
我觉得是你代码有一小点问题,打印的和写入的不一致吧? 检查检查~
嗯,打印出来的和我写入的不一样。就是假如数据不存在,我可以打印出来0.9不存在不存在不存在 0.940.950.960.97 0.98
但是存入到csv里面就变成了0.90.880.870.87 0.940.950.960.97 0.98
代码我发到第一行了啊大神帮我看看,是哪里写的有问题,还是我写的存入csv里的这一段:
write_clo =
df = pd.DataFrame(columns=(write_clo))
df.to_csv('sao.csv', line_terminator="\n", index=False, mode='a', encoding='utf8')
是不是差什么? lpp25621832 发表于 2020-6-20 17:15
嗯,打印出来的和我写入的不一样。就是假如数据不存在,我可以打印出来0.9不存在不存在不存在 0. ...
是不是数据有问题,你看看写入前一行打印一次
我测试没什么毛病
Twilight6 发表于 2020-6-20 17:24
是不是数据有问题,你看看写入前一行打印一次
我的意思就是 拿你上面这个例子举例。
当爬到第5页的这个 1 = [,, ]的时候,
1 = 【[不存在],[不存在], ]。
然后pycharm可以打印出这个[不存在],[不存在],
但是存入csv里面就不行,我想请问在csv里面如何也能显示出这个[不存在],或者就让这个位置空着,什么都不显示也行。就是不要把下面的数据给移到上面了。这样数据就错了。 Twilight6 发表于 2020-6-20 17:24
是不是数据有问题,你看看写入前一行打印一次
我上面打印的时候 判断了 ta 这个数据在不在
但是我写入csv里面的时候没有判断
难道写入csv里面的时候也需要判断吗? lpp25621832 发表于 2020-6-20 17:36
我上面打印的时候 判断了 ta 这个数据在不在
但是我写入csv里面的时候没有判断
难道写入csv里面的时候 ...
这个意思?
import pandas as pd
head = ["标题1" , "标题2" , "标题3"]
l = [,,[ 8, 0, 9]]
for i in range(len(l)):
if l == :
l = )]*3
df = pd.DataFrame (l , columns = head)
df.to_csv ("test.csv" ,index=False, encoding = "utf-8")
df2 = pd.read_csv ("test.csv", encoding = "utf-8")
print (df2)
lpp25621832 发表于 2020-6-20 17:36
我上面打印的时候 判断了 ta 这个数据在不在
但是我写入csv里面的时候没有判断
难道写入csv里面的时候 ...
写入不需要判断呀,如果数据不存在会当为缺失值不是吗
然后就是一个空的
Twilight6 发表于 2020-6-20 17:40
这个意思?
head = ['标题1','标题2','标题3','标题4','标题5','标题6','标题7','标题8','标题9' ]
list =
for i in range(len(list)):
if list == :
list = )]*9
df = pd.DataFrame(list, columns=head)
df.to_csv('demo1.csv', line_terminator="\n", index=False, mode='a', encoding='utf8')
结果报错:Shape of passed values is (9, 1), indices imply (9, 9)
为什么? Twilight6 发表于 2020-6-20 17:41
写入不需要判断呀,如果数据不存在会当为缺失值不是吗
然后就是一个空的
是啊 按理说应该是这样
可是我存入csv里面的时候,原本没有数据的那一栏 系统给自动的加了个数据。。。。导致数据错乱了啊
lpp25621832 发表于 2020-6-20 18:03
head = ['标题1','标题2','标题3','标题4','标题5','标题6','标题7','标题8','标题9' ]
list =
建议直接发完整代码,我帮你看,这大概率是你自己数据没弄好的原因
Twilight6 发表于 2020-6-20 18:36
建议直接发完整代码,我帮你看,这大概率是你自己数据没弄好的原因
Twilight6 发表于 2020-6-20 17:40
这个意思?
head = ['标题1','标题2','标题3','标题4','标题5','标题6','标题7','标题8','标题9' ]
list =
for i in range(len(list)):
if list == :
list = )]*9
df = pd.DataFrame(list, columns=head)
df.to_csv('demo1.csv', line_terminator="\n", index=False, mode='a', encoding='utf8')
结果报错:Shape of passed values is (9, 1), indices imply (9, 9)
请问:这个怎么写能变成(9,1),而不是(9,9)?
lpp25621832 发表于 2020-6-20 18:38
Twilight6 发表于 2020-6-20 17:40
这个意思?
你 的 list =
里面的数据有些不是 列表 导致报错 Twilight6 发表于 2020-6-20 18:53
你 的 list =
里面的数据有些不是 列表 导致报错
ta就是每一页的列表的一行,每一页我都要提取9行里面的内容,但不是每一页的每一行都有内容,所以就会出现爬到某一页的时候ta没有数据的情况,
然后pycharm能够打印出来没有数据,
但是存入csv里面的时候就不会打印没有数据。
write_clo =
df = pd.DataFrame(columns=(write_clo))
df.to_csv('sao.csv', line_terminator="\n", index=False, mode='a', encoding='utf8')
我是不是要在存入csv的这个语句里面加个什么句子?或者有什么占位符? lpp25621832 发表于 2020-6-20 19:07
ta就是每一页的列表的一行,每一页我都要提取9行里面的内容,但不是每一页的每一行都有内容,所以就会出 ...
语句里面加个什么句子?或者有什么占位符?
唉,这我不清楚了,你不方便发完整代码吗?不方便的话无能为力了 Twilight6 发表于 2020-6-20 19:19
唉,这我不清楚了,你不方便发完整代码吗?不方便的话无能为力了
我一开始发的就相当于完整代码了,就差前面的一个url地址
这就是所有我要提取的内容了,每一页的9行里的数据。 本帖最后由 Twilight6 于 2020-6-21 12:08 编辑
lpp25621832 发表于 2020-6-20 19:38
我一开始发的就相当于完整代码了,就差前面的一个url地址
这就是所有我要提取的内容了,每一页的9行里的 ...
....你发这个代码我要补充是吗....? 代码中一个符号的错误都会导致整个代码无法运行....
你的编辑,还不如完全复制下来
Twilight6 发表于 2020-6-20 19:39
无语了 你发这个代码我要补充是吗? 你知道代码每一个环节可能缺少一个参数都会导致整个代码无法运 ...
大神,我知道我的问题在哪了。
就是我存入csv里面的数据如果没有,它就自动的被前面一行的数据给替换了。
pandas里面不是有个:
df.fillna(method="pad") #用前一个的数据代替NaN
但问题是我没有调用过这个方法,而且也不想用这个。
请问大神 怎么能让这个df.fillna(method="pad") 恢复默认值 即 df.fillna(method="None")
真的非常感谢你。
页:
[1]
2