花了相当多的时间观察SO上的r和pandas标签,我得到的印象是pandas
问题不太可能包含可重现的数据.这是值得的R社会一直要鼓励不错,并感谢像导游这样,新人能得到放在一起,这些例子一些帮助.能够阅读这些指南并返回可重现数据的人通常会更好地获得他们问题的答案.
我们如何为pandas
问题创建良好的可重复示例?简单的数据帧可以放在一起,例如:
import pandas as pd
df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice'],
'income': [40000, 50000, 42000]})
Run Code Online (Sandbox Code Playgroud)
但是许多示例数据集需要更复杂的结构,例如:
datetime
指数或数据expand.grid()
函数,它会产生某些给定变量的所有可能组合?)对于dput()
难以使用几行代码进行模拟的数据集,是否有与R相当的R ,它允许您生成可复制粘贴的代码以重新生成数据结构?
这个问题早些时候被标记为如何制作好的可重复的熊猫示例的副本。对于任何寻求制作此类可重复数据样本的人来说,该贡献无疑应该是首选帖子,而这篇文章旨在阐明一种非常实用且有效的方法,将给定的数据样本包含df.to_dict()
在与df=pd.DataFrame(<dict>)
. How to make good reproducible pandas examples 中的问题和答案都没有明确涵盖这一点。Usingdf.to_dict()
也可以很好df.to_clipboard()
地与 结合使用,在文章How to provide a reproducible copy of your DataFrame with to_clipboard()中进行了简明扼要的介绍
尽管有关于如何提出好问题的清晰简明的指导?以及如何创建最小的、可重现的示例,许多人似乎只是忽略了在他们的问题中包含可重现的数据样本。那么,当简单pd.DataFrame(np.random.random(size=(5, 5)))
还不够时,有什么实用且简单的方法来重现数据样本呢?例如,您如何使用df.to_dict()并将输出包含在问题中?
因为我在谷歌上没有找到与我的“问题”相关的任何内容,所以我在这里问大家。我正在使用 Spyder IDE 通过 Python 3.7 进行科学编码,我的问题是 Spider 没有在变量资源管理器中显示数据框变量。\n例如:
\n word_mi_information.append([average, max_mi, class_name[max_index], vocab_list[w_index]])\n \nword_mi_information = sorted(word_mi_information, key=lambda x: x[0], reverse=True)\n\npreview3 = pd.DataFrame(word_mi_information)\npreview3.columns=['mutual information(MI)', 'main class MI', 'main_class', 'word']\n\npreview3.head(10)\n\n#the expected output \n\n\n Info Gain main class info main_class word\n0 4473.658680600584 24124.9834859362 ('C:/Users/user/Desktop/Akhbarona\\\\Tech', '', '') \xd9\x87\xd8\xaa\xd9\x81\n1 4154.761699928653 20292.13826441525 ('C:/Users/user/Desktop/Akhbarona\\\\Tech', '', '') \xd8\xae\xd8\xaf\xd9\x85\n2 4082.1526400011394 21332.74626781158 ('C:/Users/user/Desktop/Akhbarona\\\\Tech', '', '') \xd8\xb4\xd8\xb1\xd9\x83\n3 3907.930114110117 7164.627960061558 ('C:/Users/user/Desktop/Akhbarona\\\\Politics', '', '') \xd8\xba\xd8\xb1\xd8\xa8\n4 3487.537345717307 17568.034002235207 ('C:/Users/user/Desktop/Akhbarona\\\\Medical', '', '') \xd8\xac\xd8\xb3\xd9\x85\n5 3469.0442804650042 17593.549747242403 ('C:/Users/user/Desktop/Akhbarona\\\\Medical', '', '') \xd9\x86\xd9\x88\xd9\x84\n6 3398.1096950558563 17168.788976051695 ('C:/Users/user/Desktop/Akhbarona\\\\Medical', '', '') …
Run Code Online (Sandbox Code Playgroud) 我对熊猫很陌生,需要一些帮助。我有一个包含年龄的列,需要对这些进行分组:\n年轻人:年龄\xe2\x89\xa430\n中年人:30<年龄\xe2\x89\xa460\n老年人:60<年龄\n这里是代码,但它给了我一个错误:
\ndef get_num_people_by_age_category(dataframe):\n young, middle_aged, old = (0, 0, 0)\n dataframe["age"] = pd.cut(x=dataframe[\'age\'], bins=[30,31,60,61], labels=["young","middle_aged","old"])\n return young, middle_aged, old\nages = get_num_people_by_age_category(dataframe) \nprint(dataframe)\n
Run Code Online (Sandbox Code Playgroud)\n 我正在使用 pandas 探索一些数据(我使用 read_excel 从 excel 导入数据集)。
我的其中一列是日期时间...我如何为此日期时间列选择“最大”和“最小”?
这与这里是同一个问题:
但是,那里没有回答...我的日期时间列不是我的索引(我只有默认索引 0,1,2,3...)
我尝试过使用,max(df['creation_date'])
但我认为它无法识别日期,我明白了
'2020年10月31日 22:33:10'
(在数据集中我也有 2021 年的日期时间......)
如何选择最大和最小日期?我是否必须将我的日期作为我的索引才能实现它?
(我来自 sql 背景...当我执行 df.info() 时,Dtype 是日期时间的对象,我可以将数据帧的列的数据类型更改为日期时间吗?)
鉴于来自其他一些问题的数据框架:
Constraint Name TotalSP Onpeak Offpeak
Constraint_ID
77127 aaaaaaaaaaaaaaaaaa -2174.5 -2027.21 -147.29
98333 bbbbbbbbbbbbbbbbbb -1180.62 -1180.62 0
1049 cccccccccccccccccc -1036.53 -886.77 -149.76
Run Code Online (Sandbox Code Playgroud)
好像有一个索引Constraint_ID
.当我尝试用它读取时pd.read_clipboard
,这就是它的加载方式:
Constraint Name TotalSP Onpeak Offpeak
0 Constraint_ID NaN NaN NaN NaN
1 77127 aaaaaaaaaaaaaaaaaa -2174.50 -2027.21 -147.29
2 98333 bbbbbbbbbbbbbbbbbb -1180.62 -1180.62 0.00
3 1049 cccccccccccccccccc -1036.53 -886.77 -149.76
Run Code Online (Sandbox Code Playgroud)
这显然是错误的.我怎么能纠正这个?
以下是另一个问题的一些数据:
main Meas1 Meas2 Meas3 Meas4 Meas5
sublvl Value Value Value Value Value
count 7.000000 1.0 1.0 582.00 97.000000
mean 30 37.0 26.0 33.03 16.635350
Run Code Online (Sandbox Code Playgroud)
我想以这样的方式读取这些数据:第一列实际上是索引,前两行被视为多级列,其中MeasX
第一级是第一级,Value
是第二级.
我怎么能用这个pd.read_clipboard
呢?
我的pd.read_clipboard
系列:
我有一个看起来像这样的数据框:
Person Day Value
1 Mon 32
1 Tue 30
1 Wed 34
1 Thu 22
1 Fri 43
2 Mon 22
2 Wed 14
2 Fri 11
3 Tue 13
3 Wed 22
3 Thu 23
Run Code Online (Sandbox Code Playgroud)
该数据集查看一组人每个工作日(周一至周五)的值。有些人有整整 5 天(例如第 1 个人),有些人只有几天。我想创建新的空行,以便每个人都有完整的 5 天,即使他们没有价值。
这是我想要的输出:
Person Day Value
1 Mon 32
1 Tue 30
1 Wed 34
1 Thu 22
1 Fri 43
2 Mon 22
2 Tue Nan
2 Wed 14
2 Thu Nan
2 Fri 11
3 Mon …
Run Code Online (Sandbox Code Playgroud) 这是我第一次在这个论坛上提问,希望不要出丑。我是一名 IT 教育专业的学生,今天向我简要介绍了 CSV 和 Matplotlib 库。任务是制作一个图表/图表,显示该 CSV 文件中的最高和最低温度以及相应的日期。我需要行号,并且需要程序来理解单元格的正确格式/语法,但我真的不知道如何做。
此处的 CSV 文件示例:"STATION","NAME","DATE","PRCP","TMAX","TMIN","TOBS" "USC00042319","DEATH VALLEY, CA US","2018-01- 01","0.00","65","34","42" "USC00042319","死亡谷,美国加利福尼亚州","2018-01-02","0.00","61","38", "46" "USC00042319","美国加利福尼亚州死亡谷","2018-01-03","0.00","69","34","54" "USC00042319","美国加利福尼亚州死亡谷", "2018-01-04","0.00","69","39","48" "USC00042319","死亡谷,美国加利福尼亚州","2018-01-05","0.00","74" ,"40","57" "USC00042319","死亡谷,美国加利福尼亚州","2018-01-06","0.00","74","47","65" "USC00042319","死亡谷,美国加利福尼亚州”,“2018-01-07”,“0.00”,“77”,“54”,“60”“USC00042319”,“死亡谷,美国加利福尼亚州”,“2018-01-08”,“0.07 ","62","52","52" "USC00042319","死亡谷,美国加利福尼亚州","2018-01-09","0.40","60","51","51" "USC00042319 ","美国加利福尼亚州死亡谷","2018-01-10","0.00","64","49","50"
这就是我得到的:
import csv
import matplotlib.pyplot as plt
filename = 'death_valley_2018_simple.csv'
with open(filename) as f:
csv_reader = csv.reader(f, delimiter=',')
line_count = 0
for row in f:
x=(row[4], row[5])
y=(row[2])
print(row[2])
print(row[4])
print(row[5])
plt.bar(x,y)
plt.xticks(y)
plt.ylabel('Dates')
plt.title('Plot')
plt.show()
Run Code Online (Sandbox Code Playgroud)
结果是这个“条形图” 我从这里阅读了其他论坛帖子,在 Discord 上询问并阅读了 CSV 文档。也许答案就在那里,但我当时不明白。我希望有人能像我 5 岁一样向我解释这一点。