簡體   English   中英

用一定數量的值填充空 df - Python

[英]Filling empty df with certain amount of values - Python

每個人! 我想為我的妻子做點什么,但我遇到了一些問題。 我想創建一個特定的值並逐列替換信息。

這是我所做的:

import numpy as np
import pandas as pd

datalist = ['Sex', 'Race', 'Age', 'FT']
df = pd.DataFrame(np.random.randint(0,1,size=(3101, 4)), columns=datalist) #I want four columns and 3100 rows.

df = df.replace(to_replace ="0", value ="Female", limit=1752, inplace=True) #I'm trying to turn 1752 of the rows under Sex to be Female, and the rest Male.

在我到達男性方面之前,我測試了 df 並發現了這個:

    Sex  Race  Age  FT
0  None     0    0   0
1  None     0    0   0
2  None     0    0   0
3  None     0    0   0
4  None     0    0   0

為什么性回歸沒有? 我已經關閉了就地,但它只是將所有內容都保留為 0。我做錯了什么?

謝謝!

我認為 loc 方法可以有效地替換列中的值...實際上我不知道您嘗試使用 replace 方法強硬的原因..

df.loc[0:1752-1,'Sex']='Female'
df.loc[df.Sex!='Female',:'Sex']='Male'
print(df)
df.value_counts()

如果我理解你的問題,這應該會讓你上路:

import numpy as np
import pandas as pd

datalist = ['Sex', 'Race', 'Age', 'FT']
numpy_data = np.random.choice([0,1],size=(3101, 4))
df = pd.DataFrame(data=numpy_data, columns=datalist)
df['Sex'] = df['Sex'].astype(str)
df['Sex'].replace(to_replace ="0", value ="Female", limit=1752, inplace=True)

簡單地:

df['Sex'] = ['female']*1752 + ['male']*(3101-1752)

最后,您可以洗牌您的數據框:

df.sample(frac=1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM