Это то, что вы можете сделать, вам нужна функция, чтобы делать это каждый раз.
import pandas as pd
df = pd.read_csv(r'R_100.csv', encoding='cp1252')
После прочтения кадра данных
def frac(dataframe, fraction, other_info=None):
"""Returns fraction of data"""
return dataframe.sample(frac=fraction)
здесь other_info может быть определенным именем столбцаи затем вызовите функцию сколько угодно раз
df_1 = frac(df, 0.3)
, она вернет вам новый фрейм данных, который вы можете использовать для чего угодно, вы можете использовать это как-то так, как я понимаю из вашего примера.взятие суммы столбца
import random
def random_gen():
"""generates random number"""
return random.randint(0,1)
def print_sum(column_name):
"""Prints sum"""
# call the random_gen() to give out a number
rand_num = random_gen()
# pass the number as fraction parameter to frac()
df_tmp = frac(df, rand_num)
print(df_tmp[str(column_name)].sum())
Или, если вы хотите
, но я не уверен, как расширить это, чтобы выбрать разные проценты одновременно.
Затем просто измените print_sum
следующим образом
def print_sum(column_name):
"""returns result for 10 iterations"""
# list to store all the result
results = []
# selecting different percentage fraction
# for 10 different random fraction or you can have a list of all the fractions you want
# and then for loop over that list
for i in range(1,10):
# generate random number
fracr = random_gen()
# pass the number as fraction parameter to frac()
df_tmp = frac(df, fracr)
result.append(df_tmp[str(column_name)].sum())
return result
Надеюсь, это поможет!Обратная связь высоко ценится :)