英文:
Create a table of values from a pandas DataFrame
问题
我正在尝试在Python中根据用户输入创建一个关于除草剂使用的应用程序和日期的表格。我有一个带有应用程序信息('DeviceName')和日期('DAY')的pandas DataFrame。我从DataFrame中获取唯一的日期和设备名称:
devices = df['DeviceName'].unique()
days = df['DAY'].unique()
我从用户那里获取了除草剂的使用量:
herbicides = []
for device in devices:
for day in days:
herbicide = input("How much herbicide did " + str(device) + " use on Day " + str(day) + "?: ")
herbicides.append(herbicide)
如果可能的话,我希望最终的输出显示用户输入,如下所示:
DeviceName 24 25 26 27 28
Applied_AA-19 Input # Input # Input # Input # Input #
Applied_AA-24 Input # Input # Input # Input # Input #
英文:
I'm trying to create a table of herbicide use by applicator and day from user input in Python. I have a pandas DataFrame with applicator information ('DeviceName') and day of the month ('DAY'). I'm getting the unique day and device name from the DataFrame with:
devices = df['DeviceName'].unique()
days = df['DAY'].unique()
I'm getting the herbicide usage from the user with:
herbicides = []
for device in devices:
for day in days:
herbicide = input("How much herbicide did " + str(device) + " use on Day " + str(day) + "?: ")
herbicides.append(herbicide)
If possible, I would like the final output to display the user input like this:
DeviceName 24 25 26 27 28
Applied_AA-19 Input # Input # Input # Input # Input #
Applied_AA-24 Input # Input # Input # Input # Input #
答案1
得分: 1
IIUC,您可以使用输入数据来初始化一个字典
,然后将其传递给DataFrame
构造函数:
devices, days = df["DeviceName"].unique(), df["DAY"].unique()
d = {
device: {
day: input(f"How much herbicide did {device} use on Day {day}?: ")
for day in days
}
for device in devices
}
out = pd.DataFrame.from_dict(d, orient="index").reset_index(names="DeviceName")
输出:
How much herbicide did Applied_AA-19 use on Day 24?: 1
How much herbicide did Applied_AA-19 use on Day 25?: 2
How much herbicide did Applied_AA-19 use on Day 26?: 3
How much herbicide did Applied_AA-19 use on Day 27?: 4
How much herbicide did Applied_AA-19 use on Day 28?: 5
How much herbicide did Applied_AA-24 use on Day 24?: 6
How much herbicide did Applied_AA-24 use on Day 25?: 7
How much herbicide did Applied_AA-24 use on Day 26?: 8
How much herbicide did Applied_AA-24 use on Day 27?: 9
How much herbicide did Applied_AA-24 use on Day 28?: 10
print(out)
DeviceName 24 25 26 27 28
0 Applied_AA-19 1 2 3 4 5
1 Applied_AA-24 6 7 8 9 10
使用的输入数据:
df = pd.DataFrame({
"DeviceName": ["Applied_AA-19", "Applied_AA-24"]*4,
"DAY": [24, 25, 25, 26, 26, 27, 28, 28]
})
英文:
IIUC, you can bootstrap a d
ictionnary with the inputs and pass it to the DataFrame
constructor :
devices, days = df["DeviceName"].unique(), df["DAY"].unique()
d = {
device: {
day: input(f"How much herbicide did {device} use on Day {day}?: ")
for day in days
}
for device in devices
}
out = pd.DataFrame.from_dict(d, orient="index").reset_index(names="DeviceName")
Output :
How much herbicide did Applied_AA-19 use on Day 24?: 1
How much herbicide did Applied_AA-19 use on Day 25?: 2
How much herbicide did Applied_AA-19 use on Day 26?: 3
How much herbicide did Applied_AA-19 use on Day 27?: 4
How much herbicide did Applied_AA-19 use on Day 28?: 5
How much herbicide did Applied_AA-24 use on Day 24?: 6
How much herbicide did Applied_AA-24 use on Day 25?: 7
How much herbicide did Applied_AA-24 use on Day 26?: 8
How much herbicide did Applied_AA-24 use on Day 27?: 9
How much herbicide did Applied_AA-24 use on Day 28?: 10
print(out)
DeviceName 24 25 26 27 28
0 Applied_AA-19 1 2 3 4 5
1 Applied_AA-24 6 7 8 9 10
Input used :
df = pd.DataFrame({
"DeviceName": ["Applied_AA-19", "Applied_AA-24"]*4,
"DAY": [24, 25, 25, 26, 26, 27, 28, 28]
})
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论