#python #pandas
Вопрос:
Я пробовал перемещаться по строкам и переменным, которые я объединяю, используя циклы while, перемещал строку и метод, которым я открываю выходной файл, и т. Д. Независимо от того, что я делаю, мои выходные данные печатают/записывают «curl» мою переменную url. Оттуда оно заканчивается на»…», например: завиток «https://examplesite/…
Имеет ли это какое-то отношение к проблеме буфера или нарезки? Спасибо вам за любую и всяческую помощь. Полный код ниже.
import pandas as pd
# file = open("output.txt","wt")
header_list = ["COLA", "COLB"]
df = pd.read_csv("curl_data.csv", names=header_list)
df_length = len(df)
iterator = 0
with open("output.txt", "w") as file:
for row in df.iterrows():
url = '"https://examplesite'
lic = df.COLA # use instead of spaces
name = df.COLB # use instead of spaces
group = "example group" # use instead of spaces
command = "curl " url "license=" lic "amp;name=" name "amp;group=" group '"'
print(command)
file.write(str(command))
iterator = 1
if iterator == 1:
break
file.close()
Комментарии:
1. Этот сценарий этого не сделает. Я подозреваю, что это делается тем, что вы используете для просмотра файла.
2. Вы используете записную книжку Jupyter?
3.
lic = df.COLA
разве это не должно бытьrow.COLA
вместо этого? Вероятно, вывод просто становится очень длинным, потому что вы объединяетесь во всем столбце.4.
if iterator == 1: break
это означает, что он запишет в файл только первую строку.5. Что вы увидите, если сделаете
print(len(command))
это ? Это длина строки с...
или полная длина?
Ответ №1:
Решенный. Как предположил Имре Керр в комментариях, проблема заключалась в длине вывода.
Я изменил свой цикл for, чтобы for i in range(len(df)):
он проходил через фрейм данных только один раз (в соответствии с предложением Бармара), и изменил ссылки на столбцы в моем коде с df.COLA
на df.loc[i, "COLA]
на, чтобы он не печатал каждый раз весь набор данных. Это устранило проблему слишком длинных строк, и, таким образом, я смог увидеть полную строку для каждой выведенной строки.