python - 在 For 循环中重命名并创建数据框?
问题描述
我有一个列表['jan','feb']
,我试图在 for 循环中循环以创建数据框
name = ['jan','feb']
for month in name:
df = pd.DataFrame(name, columns = ['month'])
这是我得到的当前输出。
df
month
0 jan
1 feb
我需要的是为列表中的值创建一个 df wrt。所以当列表中的第一个值被传递时'jan'
。
有没有办法在循环时重命名和创建 df?
一月
month
0 jan
二月
month
0 feb
解决方案
在您给出的示例中,您一遍又一遍地重新创建相同的数据框。你可以用一个简单的方法来达到同样的效果
df = pd.DataFrame(name, columns = ['month'])
您没有在循环中使用循环变量month
。
我相信您想创建多个数据框,每个月一个。为此,您可以使用字典:
import pandas as pd
df_dict = {}
name = ['jan','feb']
for month in name:
df_dict[month] = pd.DataFrame([month])
for month in name:
print("key: ", month)
print("dataframe:")
print(df_dict[month], end='\n\n')
导致
key: jan
dataframe:
0
0 jan
key: feb
dataframe:
0
0 feb
为了创建变量(虽然我不确定你为什么要这样做),你可以修改上面的代码如下:
import pandas as pd
name = ['jan','feb']
for month in name:
globals()[month] = pd.DataFrame([month])
print(jan)
print(feb)
推荐阅读
- reactjs - TFS:构建 React 项目失败
- react-native - 构建失败,因为 react-native-reanimated
- python - 如何在 Julia 中使用 SymPy 对字符串列表进行lambdify?
- javascript - 是否可以将 HTTP.Request 响应变成字符串变量?(Node.js)(新手)
- python - 删除标题中没有日期的 FASTA 记录
- laravel - 在 VueJS Laravel 中使用其他表单输入动态更新文件
- kotlin - 验证 verifyOrder 中的确切调用次数
- html - 在制作使用语义 HTML 时,我可以使用
和 aria- describeby 而不是
- javascript - 在伪造查看器上上传了多个 IFC 文件,但位置不正确
- java - 如何在 Android 上的 Yandex 地图中获取当前位置