я хочу перебрать массив Numpy, который является ссылкой на pandas Dataframe. Причина, по которой я этого хочу, заключается в том, что я могу l oop в массиве Numpy, и изменения отражаются в кадре данных.
Я использую массив Numpy, потому что хочу произвольно выбирать строки из массива (через np.random.choice(firstNamesNumpyArray, size=50)
, измените их на l oop (например, все firstNames - 'x') и посмотрите изменения в dataFrame (lines_df).
with open('input_01.csv', 'r') as csv_file:
lines_df = pd.read_csv(csv_file, sep=',', delimiter=None, encoding="utf-8", error_bad_lines=False, nrows=150,
header=0)
initialDFfirstNames = lines_df['firstNames']
firstNamesNumpyArray = initialDFfirstNames.to_numpy()
with np.nditer(firstNamesNumpyArray, op_flags=['readwrite'], flags=['refs_OK']) as it:
for x in it:
x[...] = 'x'
InitialDFfirstNames выглядит следующим образом .
0 Boy
1 Stella
2 Elsina
3 Defne
4 Djura
...
95 Coby
96 Michele
97 Jildau
98 Tamira
99 Fynn
Name: firstNames, Length: 100, dtype: object
Я использую np.nditer в качестве итератора, но это дает ошибку: ValueError: Unexpected iterator global flag "refs_OK"
Но когда я убираю этот флаг, я получаю ошибку Iterator operand or requested dtype holds references, but the REFS_OK was not enabled.
Я знаю, что он содержит ссылки, и это именно то, чего я хочу. Любой, кто имеет опыт работы с этим?
С уважением, Даан